CLI image management (snap/2.9/CLI)

The following is a list of image management tasks to perform with the MAAS CLI.

Quick questions you may have:

List boot sources

If you want to download boot sources, i.e., the locations from which you may download images, try the following:

maas $PROFILE boot-sources read

Although multiple boot sources may be listed, MAAS can only practically work with a single boot source.

Select images

Use the boot-source-selections command to select images from a boot source. After selecting new images, you will need to import them.

maas $PROFILE boot-source-selections create $SOURCE_ID \
    os="ubuntu" release="$SERIES" arches="$ARCH" \
    subarches="$KERNEL" labels="*"

For example, to select all kernels for 64-bit Trusty from a boot source with an id of ‘1’:

maas $PROFILE boot-source-selections create 1 \
    os="ubuntu" release="trusty" arches="amd64" \
    subarches="*" labels="*"

Hardware enablement (HWE)

For example, to get just the latest amd64 HWE kernel available for Trusty, which, at time of writing, is from Xenial:

maas $PROFILE boot-source-selections create 1 \
    os="ubuntu" release="trusty" arches="amd64" \
    subarches="hwe-x" labels="*"

For Xenial kernels (and starting with MAAS 2.1), notation has changed. To select the latest amd64 HWE kernel available for Xenial:

maas $PROFILE boot-source-selections create 1 \
    os="ubuntu" release="xenial" arches="amd64" \
    subarches="hwe-16.04" labels="*"

List image selections

To list image selections for a boot source:

maas $PROFILE boot-source-selections read $SOURCE_ID

Import newly-selected images

To import newly-selected images (boot resources):

maas $PROFILE boot-resources import

Once newly-selected images are imported, a sync mechanism is enabled (by default) to keep them up to date. The refresh time interval is 60 minutes.

Available images resulting from this action are reflected in the web UI.

List currently available images

To list currently available/imported images (boot resources):

maas $PROFILE boot-resources read

Delete a boot source

To delete a boot source (the location from which you can download images):

maas $PROFILE boot-source delete $SOURCE_ID

If you delete the sole boot source, then the fields ‘Sync URL’ and ‘Keyring Path’ in the web UI will take on null values.

Edit a boot source

You can edit an existing boot source by changing the GPG keyring file ($KEYRING_FILE) and the location ($URL).

Update the boot source:

maas $PROFILE boot-source update $SOURCE_ID \
    url=$URL keyring_filename=$KEYRING_FILE

At this time MAAS only supports a boot source containing official MAAS images. As a result, you can only edit a boot source if you have set up a mirror of its images. The location can change, but the keyring remains constant:


Add a boot source

To avoid unnecessary complexity, you should probably delete any existing boot sources before adding a new one.

Presented below are two use cases for adding a boot source:

  1. Use a local image mirror (official images)
  2. If you deleted the default image, recreate it

The general syntax is:

maas $PROFILE boot-sources create \
    url=$URL keyring_filename=$KEYRING_FILE

The output will include a new numeric ID that identifies the boot source ($SOURCE_ID).

Since MAAS can only practically work with a single boot source, so you will need to delete any existing sources. Note that the location (URL) is the only variable. The only supported keyring is:


If you added a sole boot source, then the fields ‘Sync URL’ and ‘Keyring Path’ in the web UI will reflect its values.

Once the source is added, proceed to the Select and import images step.

Using a local image mirror

Once the mirror is set up according to Local image mirror it is just a matter of specifying the mirror location (URL). Since the images come from the default source, you should use the default keyring. If you are following the above mirror document, the variable values should be:

  • URL=https://$MIRROR/maas/images/ephemeral-v3/daily/
  • KEYRING_FILE=/usr/share/keyrings/ubuntu-cloudimage-keyring.gpg

Where $MIRROR is the mirror server’s hostname or IP address.

Recreate the default boot source

Recreate the default boot source if it was ever deleted using the following variable values:

  • URL=
  • KEYRING_FILE=/usr/share/keyrings/ubuntu-cloudimage-keyring.gpg

I can’t figure out why I’m getting invalid choice when i do
“maas admin boot-sources read”

argument COMMAND: invalid choice: ‘boot-resources’ (choose from ‘devices’, ‘files’, ‘machines’, ‘nodes’, ‘rack-controllers’, ‘region-controllers’, ‘version’)

I’m logged into maas cli

no idea. when I do maas admin boot-sources read on my MAAS, I get this:

stormrider@wintermute:~$ maas admin boot-sources read
Machine-readable output follows:
        "created": "2020-07-24T19:22:06.147",
        "updated": "2020-07-24T19:22:06.147",
        "url": "",
        "keyring_filename": "/snap/maas/current/usr/share/keyrings/ubuntu-cloudimage-keyring.gpg",
        "id": 1,
        "keyring_data": "",
        "resource_uri": "/MAAS/api/2.0/boot-sources/1/"

What version are you using? And did you try other maas commands, like maas admin --help ??

i’m on 2.9. I can do maas admin --help. Seems like a lot of my commands are not working. I may have to reinstall everything.

what beta level of maas 2.9, do you know?

I am on 2.9 beta level 5

two of us tried the command on maas 2.9, it works fine. you have other commands that don’t work? can you post a screenshot of the whole process for one command?

I fixed it by regenerating new api keys

sudo maas apikey --username=$PROFILE > $API_KEY_FILE
1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.