The deployment step:

  • Makes the head node become a MAAS server from which the other nodes of the network (fabric switches and compute nodes) can PXE boot from to get their OS installed, and -then- get configured.

  • Installs and configures the containers needed to configure other nodes of the network.

  • Installs and configures OpenStack.

  • Provisions XOS, which provides service provisioning and orchestration for the CORD POD.

This step is started with the following command:

./gradlew -PdeployConfig=config/podX.yml deploy

Be patient: this step might take up to 3 hours to complete.

It might to see this command fail due to different reasons. Sometime, simply re-running the command seems to solve issues. If the command fails it’s better to start from a clean head node. Most of the times, simply re-starting from the publish step -which creates new containers on the head node- helps.

If the process runs smoothly, the output should be similar to:

PLAY RECAP *********************************************************************
localhost                  : ok=5    changed=2    unreachable=0    failed=0   

Monday 19 June 2017  22:59:22 +0000 (0:00:00.233)       0:00:03.370 *********** 
setup ------------------------------------------------------------------- 1.35s
setup ------------------------------------------------------------------- 1.18s
automation-integration : Template do-enlist-compute-node script to /etc/maas/ansible/do-enlist-compute-node --- 0.46s
automation-integration : Have MAAS do-ansible script run do-enlist-compute-node script --- 0.23s
Include variables ------------------------------------------------------- 0.12s


Total time: 57 mins 25.458 secs

This step is complete when the command successfully runs.


As previously mentioned, once the deployment is complete the head node becomes a MAAS region and rack controller, basically acting as a PXE server and serving images through the management network to compute nodes and fabric switches connected to it.

The Web UI for MAAS can be viewed by browsing to the head node, using a URL of the form http://head-node-ip-address/MAAS.

To login to the web page, use cord for username.

After the deploy command installs MAAS, MAAS itself initiates the download of an Ubuntu 14.04 boot image that will be used to boot the other POD devices. This download can take some time and the process cannot continue until the download is complete. The status of the download can be verified through the UI by visiting the URL http://head-node-ip-address/MAAS/images/, or via the command line from head node via the following command:

APIKEY=$(sudo maas-region-admin apikey --user=cord) && \
maas login cord http://localhost/MAAS/api/1.0 "$APIKEY" && \
maas cord boot-resources read | jq 'map(select(.type != "Synced"))'

It the output of of the above commands is not an empty list ([]) then the images have not yet been completely downloaded. Depending on your network speed this could take several minutes. Please, wait and then attempt the last command again, until the returned list is empty.

When the list is empty you can proceed.