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:
In the MAAS UI, at http://head-node-ip-address/MAAS/#/nodes
From the OpenStack CLI on the head node, using the command
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.