How to provision machines

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

Configure controllers

There are two types of MAAS controllers:

  • Rack controller: Manages VLANs and connects to one MAAS instance at a time.
  • Region controller: Manages UI/API, rack controllers, and MAAS PostgreSQL database.

You can do the following basic configuration:

  • Add rack controller (snap):
    sudo snap install maas
    sudo maas init rack --maas-url $MAAS_URL --secret $SECRET
    
  • List rack controllers:
    maas $PROFILE rack-controllers read | grep hostname | cut -d '"' -f 4
    
  • Move rack controller: Delete and re-register on another MAAS instance.
    maas $PROFILE rack-controller delete $SYSTEM_ID
    

Configure machines

  • Add machine (UI): Machines > Add hardware > Machine > fill in the form > Save.
  • Add machine (CLI):
    maas $PROFILE machines create 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
    
  • List machines (CLI):
    maas $PROFILE machines read | jq -r '(["HOSTNAME","SYSID","POWER", ...])'
    
  • View machine details (CLI): View machine status/configuration using:
    maas $PROFILE machine read $SYSTEM_ID | jq '.'
    

Commission machines

  • Commission (UI): Machines > machine > Actions > Commission > Commission machine.
  • Commission (CLI):
    maas $PROFILE machine commission $SYSTEM_ID
    
  • Upload commissioning scripts (UI): Settings > User scripts > Upload.

Allocate machines

  • Allocate machine (UI): Machines > machine > Take action > Allocate.
  • Allocate machine (CLI):
    maas $PROFILE machines allocate
    
  • Allocate specific machine (CLI):
    maas $PROFILE machines allocate system_id=$SYSTEM_ID
    

Deploy machines

  • Deploy machine (UI): Machines > machine > Take action > Deploy.
  • Deploy machine (CLI):
    maas $PROFILE machine deploy $SYSTEM_ID
    
  • Deploy as KVM host:
    maas $PROFILE machine deploy $SYSTEM_ID install_kvm=True
    

Set deployment timeout

  • Set deployment timeout (CLI):
    maas $PROFILE maas set-config name=node-timeout value=$NUMBER_OF_MINUTES
    

Add running machines

  • Via CLI:
    maas $PROFILE machines create deployed=true hostname=mymachine \
    architecture=amd64 mac_addresses=00:16:3e:df:35:bb power_type=manual
    
  • Via the machine itself:
    wget http://$MAAS_IP:5240/MAAS/maas-run-scripts
    chmod 755 maas-run-scripts
    ./maas-run-scripts register-machine --hostname mymachine \
    > http://$MAAS_IP:5240/MAAS $MAAS_API_TOKEN
    

Last updated 2 days ago.