The section describes how to provision and configure software on POD compute nodes and fabric switches.

General workflow

Once it has been verified that the Ubuntu boot image has been downloaded the compute nodes and the fabric switches may be PXE booted.

Compute nodes and switches should be simply rebooted. The head node (through MAAS) will act as DHCP and PXE server. It will install the OSs and will make sure they are correctly configured.

At the end of the process, they should be visible through the CORD CLI utils and MAAS.

Make sure your computes nodes and fabric switches are configured as prescribed in the Software and Environment requirements section

Important commands: cord harvest and cord prov

Two important commands have been made available for you to debug and check the status of the provisioning from the head node CLI.

cord harvest

 it tracks the nodes harvesting process. Nodes and switches should appear here, as soon as they get an IP and are recognized by MAAS. To see if your devices have been recognized, use the following command: cord harvest list

cord prov (provisioning)

It tracks the provisioning process, meaning the configuration process happening soon after the OS has been installed on your devices. To see the provisioning status of your devices, use the following command: cord prov list

The following status values are defined for the provisioning status:

  • Pending: the request has been accepted by the provisioner but not yet started

  • Processing: the request is being processed and the node is being provisioned

  • Complete: the provisioning has been completed successfully

  • Error: the provisioning has failed and the message will be populated with the exit message from provisioning.

Logs of the post deployment provisioning can be found in /etc/maas/ansible/logs on the head node.

For a given node, the provisioning re-starts automatically if the related entry gets manually removed, with the following command: cord prov delete node_name

Static IP assignment

You may want to assign a specific IP either to a compute node or a fabric switch. If this is the case, the following task should be completed before booting the devices. This is achieved through a configuration file: /etc/dhcp/dhcpd.reservations.

In order to help you, a sample file has been made available: /etc/dhcp/dhcpd.reservations.sample.

For each host you want to statically assign an IP to, follow this syntax:

host <name-of-your choice> {
 hardware ethernet <host-mac-address>;
 fixed-address  <desired-ip>;
}

Compute nodes

The compute node provisioning process will install the servers as OpenStack compute nodes.

The compute node will boot, register with MAAS, and then restart (eventually multiple times).

Compute nodes will be given a random hostname, in the “Canonical way”, of an adjective and a noun, such as popular-feast.cord.lab. The name will be different for every deployment.

After this is complete, an entry for each node will be visible:

source ~/admin-openrc.sh && \
nova hypervisor-list
  • From CORD head node CLI, using the cord-harvest command

In MAAS, the new node will be initially in a “New” state. As the machines boot, they should be automatically transitioned from New through the states of Commissioned, Acquired and Deployed.

Once the node is in the Deployed state, it will be provisioned for use in a CORD POD by the automated execution of an Ansible playbook.

The post deployment provisioning of the compute nodes can be queried using the cord prov command.

After a correct provisioning you should see something similar to:

cord prov list
ID                                         NAME                   MAC                IP          STATUS      MESSAGE
node-c22534a2-bd0f-11e6-a36d-2c600ce3c239  steel-ghost.cord.lab   2c:60:0c:cb:00:3c  10.6.0.107  Complete
node-c238ea9c-bd0f-11e6-8206-2c600ce3c239  feline-shirt.cord.lab  2c:60:0c:e3:c4:2e  10.6.0.108  Complete

Once the post deployment provisioning on the compute node is complete, this task is complete.

Fabric switches

Similarly to the compute nodes, the fabric switches will boot, register with MAAS, and then restart (eventually multiple times).

If a name hasn’t been assigned to the switches (see the static IP assignment section above), usually switches have a name in the form UKN-XXXXXX.

When the fabric switches get an IP and go through the harvesting process, they should be visible in MAAS, under the devices tab (http://head-node-ip-address/MAAS/#/devices).

As for the compute nodes, following the harvest process, the provisioning will happen.

After a correct provisioning you should see something similar to:

cord prov list
ID                                         NAME                   MAC                IP          STATUS      MESSAGE
cc:37:ab:7c:b7:4c                          UKN-ABCD                cc:37:ab:7c:b7:4c  10.6.0.23   Complete
cc:37:ab:7c:ba:58                          UKN-EFGH                cc:37:ab:7c:ba:58  10.6.0.20   Complete
cc:37:ab:7c:bd:e6                          UKN-ILMN                cc:37:ab:7c:bd:e6  10.6.0.52   Complete
cc:37:ab:7c:bf:6c                           UKN-OPQR                cc:37:ab:7c:bf:6c  10.6.0.22   Complete

cord prov list output for compute nodes is not shown here for simplicity.


Once the post deployment provisioning on the fabric switches is complete, the task is complete.