Chapter 3. Adding a Node to the Overcloud
The overcloud can grow to meet an increase in demand by adding a new Nova compute and Ceph OSD node to the overcloud.
Prerequisites
- A running RHHI Cloud solution.
- The MAC addresses for the network interface cards (NICs).
- IPMI User name and password
Procedure
Do the following steps on the Red Hat OpenStack Platform director node, as the stack user.
Create and populate a host definition file for the Ironic service to manage the new node.
Create a new JSON host definition file:
[stack@director ~]$ touch ~/new_node.json
Add a definition block for the new node between the
nodesstanza square brackets ({"nodes": []}) using this template:{ "pm_password": "$IPMI_USER_PASSWORD", "name": "$NODE_NAME", "pm_user": "$IPMI_USER_NAME", "pm_addr": "$IPMI_IP_ADDR", "pm_type": "pxe_ipmitool", "mac": [ "$NIC_MAC_ADDR" ], "arch": "x86_64", "capabilities": "node:$NODE_ROLE-INSTANCE_NUM,boot_option:local" }- Replace…
-
$IPMI_USER_PASSWORDwith the IPMI password. -
$NODE_NAMEwith a descriptive name of the node. This is an optional parameter. -
$IPMI_USER_NAMEwith the IPMI user name that has access to power the node on or off. -
$IPMI_IP_ADDRwith the IPMI IP address. -
$NIC_MAC_ADDRwith the network card MAC address handling the PXE boot. $NODE_ROLE-INSTANCE_NUMwith the node’s role, along with a node number. This solution uses two roles:controllerandosd-compute.{ "nodes": [ { "pm_password": "AbC1234", "name": "m630_slot2", "pm_user": "ipmiadmin", "pm_addr": "10.19.143.62", "pm_type": "pxe_ipmitool", "mac": [ "c8:1f:66:65:33:42" ], "arch": "x86_64", "capabilities": "node:osd-compute-3,boot_option:local" } ] }
-
Import the nodes into the Ironic database:
[stack@director ~]$ openstack baremetal import ~/new_node.json
Verify that the
openstack baremetal importcommand populated the Ironic database with the new node:[stack@director ~]$ openstack baremetal node list
Set the new node into maintenance mode:
ironic node-set-maintenance $UUID true
- Replace…
$UUIDwith the UUID of the new node. See the output from step 2a to get the new node’s UUID.Example
[stack@director ~]$ ironic node-set-maintenance 7250678a-a575-4159-840a-e7214e697165 true
Inspect the new node’s hardware:
openstack baremetal introspection start $UUID
- Replace…
$UUIDwith the UUID of the new node. See the output from step 2a to get the new node’s UUID.Example
[stack@director ~]$ openstack baremetal introspection start 7250678a-a575-4159-840a-e7214e697165 true
The introspection process can take some time to complete. Verify that the status of the introspection process:
[stack@director ~]$ openstack baremetal introspection bulk status
Example Output
+--------------------------------------+----------+-------+ | Node UUID | Finished | Error | +--------------------------------------+----------+-------+ | a94b75e3-369f-4b2d-b8cc-8ab272e23e89 | True | None | | 7ace7b2b-b549-414f-b83e-5f90299b4af3 | True | None | | 8be1d83c-19cb-4605-b91d-928df163b513 | True | None | | e8411659-bc2b-4178-b66f-87098a1e6920 | True | None | | 04679897-12e9-4637-9998-af8bee30b414 | True | None | | 48b4987d-e778-48e1-ba74-88a08edf7719 | True | None | | 7250678a-a575-4159-840a-e7214e697165 | True | None | +--------------------------------------+----------+-------+
Disable maintenance mode on the new node:
ironic node-set-maintenance $UUID false
- Replace…
$UUIDwith the UUID of the new node. See the output from step 2a to get the new node’s UUID.Example
[stack@director ~]$ ironic node-set-maintenance 7250678a-a575-4159-840a-e7214e697165 false
Assign the full overcloud kernel and ramdisk image to the new node:
[stack@director ~]$ openstack baremetal configure boot
Open the
~/custom-templates/layout.yamlfile for editing.-
Under the
parameter_defaultssection, change theOsdComputeCountoption from3to4. -
Under the
OsdComputeIPssection, add the new node’s IP addresses for each isolated network.
-
Under the
Apply the new overcloud configuration by rerunning the
openstack overcloud deploycommand with the same TripleO Heat templates from the initial overcloud deployment:Example
[stack@director ~]$ openstack overcloud deploy --templates \ -r ~/custom-templates/custom-roles.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml \ -e ~/custom-templates/network.yaml \ -e ~/custom-templates/ceph.yaml \ -e ~/custom-templates/compute.yaml \ -e ~/custom-templates/layout.yaml
Verify the addition of the new node:
[stack@director ~]$ openstack server list
NoteIf the node status is
ACTIVE, then the new node was added successfully to the overcloud.

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.