Offline docs (switch to live docs)                        

How to manage machines

*Errors or typos? Topics missing? Hard to read? Let us know.

Most of the day-to-day work of managing machines is covered here. Utilising machines to do work – for example, commissioning, testing, and deploying them – is discussed in How to deploy machines.

Add machines

In the MAAS UI, select Machines > Add hardware > Machine > fill in the form > Save machine (or Save and add another). The fields in this form are as follows:

To create a new machine at the command line, enter the following command:

stormrider@wintermute:~$ maas admin machines create \
      > architecture=$ARCH \
      > max_addresses=$MAC_ADDRESS \
      > power_type=$POWER_TYPE \
      > power_parameters_power_id=$POWER_ID \
      > power_parameters_power_address=$POWER_ADDRESS \
      > power_parameters_power_pass=$POWER_PASSWORD

When you enter the command (substituting the $... parameters for your own particulars), the screen will pause for a moment, and then return a stream of JSON relating to the added machine.

Here’s an example with a local laptop MAAS install, using KVMs as virtual machines:

stormrider@wintermute:~$ maas admin machines create \
      > architecture=amd64 \
      > max_addresses=52:54:00:6f:b4:af \
      > power_type=virsh \
      > power_parameters_power_id=50f6cca2-5d89-43b9-941c-90c9fcd7c156 \
      > power_parameters_power_address=qemu+ssh://stormrider@192.168.123.1/system \
      > power_parameters_power_pass=xxxxxxx

The variable fields in the machines create command (the $... items) are as follows, in this example:

> architecture=$ARCH \
      > mac_addresses=$MAC_ADDRESS \
      > power_type=$POWER_TYPE \
      > power_parameters_power_id=$POWER_ID \
      > power_parameters_power_address=$POWER_ADDRESS \
      > power_parameters_power_pass=$POWER_PASSWORD

Add machines via chassis (UI)

You can use the chassis feature to add multiple machines at once. To do this, select Machines > Add hardware > Chassis > fill in the form > *Save…." The required fields will change based on the type of chassis you choose.

Delete USB and PCI (CLI)

Note that USB and PCI devices are not visible in MAAS 2.9 and below.

To delete PCI/USB devices from the machine in any machine state, use the following command:

maas $PROFILE node-device delete $SYSTEM_ID $DEVICE_ID

where:

If the device is still present in the system, it will be recognised again (and thus “recreated”) when the machine is commissioned again.

Clone machines (MAAS 3.1 and above, UI only)

To clone machines, select Machines > choose machine > Actions > Clone from > source machine > options > Clone to machine.

Soft power off (MAAS 3.5 and above, UI only)

To power-off machines “softly” – that is, by asking the deployed OS to shut down gracefully – choose Machines > machines > Power > Soft Power Off > Confirm.

List machines

To list machines:

    maas $PROFILE machines read | jq -r '(["HOSTNAME","SYSID",
          "POWER","STATUS","OWNER", "TAGS", "POOL","VLAN","FABRIC",
          "SUBNET"] | (., map(length*"-"))),(.[] | [.hostname, .system_id, 
          .power_state, .status_name, .owner // "-",.tag_names[0] // "-", 
          .pool.name,.boot_interface.vlan.name,.boot_interface.vlan.fabric,
          .boot_interface.links[0].subnet.name]) | @tsv' | column -t
This will return a relatively compact machine listing:
    HOSTNAME      SYSID   POWER  STATUS     OWNER  TAGS                 POOL     VLAN      FABRIC    SUBNET
           --------      -----   -----  ------     -----  ----                 ----     ----      ------    ------
           lxd-vm-1      r8d6yp  off    Deployed   admin  pod-console-logging  default  untagged  fabric-1  10.124.141.0/24
           lxd-vm-2      tfftrx  off    Allocated  admin  pod-console-logging  default  untagged  fabric-1  10.124.141.0/24
           lxd-vm-3      grwpwc  off    Ready      -      pod-console-logging  default  untagged  fabric-1  10.124.141.0/24
           lxd-vm-4      6s8dt4  off    Deployed   admin  pod-console-logging  default  untagged  fabric-1  10.124.141.0/24
           lxd-vm-5      pyebgm  off    Allocated  admin  pod-console-logging  default  untagged  fabric-1  10.124.141.0/24
           lxd-vm-6      ebnww6  off    New        -      pod-console-logging  default  untagged  fabric-1  
           libvirt-vm-1  m7ffsg  off    Ready      -      pod-console-logging  default  untagged  fabric-1  10.124.141.0/24
           libvirt-vm-2  kpawad  off    Ready      -      pod-console-logging  default  untagged  fabric-1  10.124.141.0/24
           libvirt-vm-3  r44hr6  error  Ready      -      pod-console-logging  default  untagged  fabric-1  10.124.141.0/24
           libvirt-vm-4  s3sdkw  off    Ready      -      pod-console-logging  default  untagged  fabric-1  10.124.141.0/24
           libvirt-vm-5  48dg8m  off    Ready      -      pod-console-logging  default  untagged  fabric-1  10.124.141.0/24
           libvirt-vm-6  bacx77  on     Deployed   admin  pod-console-logging  default  untagged  fabric-1  10.124.141.0/24

View machine details

To open a detailed view of a machine’s status and configuration:

    #!/bin/nohighlight
          
          maas admin machine read r3rd6h | jq '.' > /tmp/machine-json
          cat /tmp/machine-json | jq -r '([.hostname,.status_name,"| Power:",.power_state,"| Kernel:",.hwe_kernel,"| Owner:",.owner]) | @tsv' | column -t -o " " > /tmp/machine-details
          cat /tmp/machine-json | jq -r '(["CPU:",.architecture,"/",.cpu_count,"core(s) /",.cpu_speed,"Mhz","| Type:",.hardware_info.cpu_model]) | @tsv' | column -t -o " " >> /tmp/machine-details
          cat /tmp/machine-json | jq -r '(["Memory:",.memory,"MB | Storage:",.storage,"MB | Power type:",.power_type]) | @tsv' | column -t -o " " >> /tmp/machine-details
          cat /tmp/machine-json | jq -r '(["Zone:",.zone.name,"| Resource pool:",.pool.name,"| Domain:",.domain.name]) | @tsv' | column -t -o " " >> /tmp/machine-details
          cat /tmp/machine-json | jq -r '(["Tags:",.tag_names[]]) | @tsv' | column -t -o " " >> /tmp/machine-details
          cat /tmp/machine-json | jq -r '(["SYSTEM Vendor:",.hardware_info.system_vendor,"| Product:",.hardware_info.system_product]) | @tsv' | column -t -o " " >> /tmp/machine-details
          cat /tmp/machine-json | jq -r '([".......Vsn:",.hardware_info.system_version,"| Serial:",.hardware_info.system_serial]) | @tsv' | column -t -o " " >> /tmp/machine-details
          cat /tmp/machine-json | jq -r '(["MAINBOARD Vendor:",.hardware_info.mainboard_vendor,"| Product:",.hardware_info.mainboard_product]) | @tsv' | column -t -o " " >> /tmp/machine-details
          cat /tmp/machine-json | jq -r '(["..........Firmware:",.hardware_info.mainboard_firmware_vendor]) | @tsv' | column -t -o " " >> /tmp/machine-details
          cat /tmp/machine-json | jq -r '(["..........Firmware Vsn:",.hardware_info.mainboard_firmware_version,"| Date:",.hardware_info.mainboard_firmware_date]) | @tsv' | column -t -o " " >> /tmp/machine-details
          cat /tmp/machine-json | jq -r '(["NETWORK: Vendor:",.boot_interface.vendor]) | @tsv' | column -t -o " " >> /tmp/machine-details
          cat /tmp/machine-json | jq -r '([".........Name:",.boot_interface.name,"| MAC:",.boot_interface.mac_address,"| Link speed:",.boot_interface.link_speed,"Mbps"]) | @tsv' | column -t -o " " >> /tmp/machine-details
          cat /tmp/machine-json | jq -r '([".........Fabric:",.boot_interface.vlan.fabric,"| MAAS DHCP:",.boot_interface.vlan.dhcp_on,"| SR-IOV:",.boot_interface.sriov_max_vf]) | @tsv' | column -t -o " " >> /tmp/machine-details
          cat /tmp/machine-details
This shell script should produce output similar to the following:
    merry-cobra Deployed | Power: on | Kernel: ga-20.04 | Owner: admin
          CPU: amd64/generic / 1 core(s) / 1600 Mhz | Type: Intel(R) Core(TM) i5-8265U CPU
          Memory: 2048 MB | Storage: 8000.004096 MB | Power type: lxd
          Zone: default | Resource pool: default | Domain: maas
          Tags: pod-console-logging virtual
          SYSTEM Vendor: QEMU | Product: Standard PC (Q35 + ICH9, 2009)
          .......Vsn: pc-q35-5.2 | Serial: Unknown
          MAINBOARD Vendor: Canonical Ltd. | Product: LXD
          ..........Firmware: EFI Development Kit II / OVMF
          ..........Firmware Vsn: 0.0.0 | Date: 02/06/2015
          NETWORK: Vendor: Red Hat, Inc.
          .........Name: enp5s0 | MAC: 00:16:3e:cc:17:58 | Link speed: 0 Mbps
          .........Fabric: fabric-5 | MAAS DHCP: true | SR-IOV: 0

Find network info (UI)

To find network info for a specific machine, select Machines > machine name > Network.

Find storage info (UI)

To view/edit machine storage info:

To find network info for a specific machine, select Machines > machine name > Storage.

View PCI devices (MAAS 3.4 only)

To view the list of PCI devices associated with a given machine, select Machines > machine name > PCI devices.

View USB devices (MAAS 3.4 only)

To view the list of USB devices associated with a given machine, select Machines > machine name > USB.

View commissioning logs (UI)

To view commissioning logs for a given machine, select Machines > machine name > Commissioning > View details (or View previous tests).

View test logs (UI)

To view commissioning logs for a given machine, select Machines > machine name > Test > View details (or View previous tests).

View raw log output (UI)

To view raw log output for a given machine, select Machines > machine name > Logs > Installation output.

View event logs

To view event logs for a given machine, select Machines > machine name > Logs > Download > .

View configuration info

To view configuration info for a given machine, select Machines > machine name > Configuration.

More information on power configuration will be found in the Power management section of this documentation.