Chapter 3. Deploying an Overcloud with the Bare Metal Service
For full details about overcloud deployment with the director, see Director Installation and Usage. This chapter covers only the deployment steps specific to ironic.
3.1. Creating the Ironic template Copy linkLink copied to clipboard!
Use an environment file to deploy the overcloud with the Bare Metal service enabled. A template is located on the director node at /usr/share/openstack-tripleo-heat-templates/environments/services/ironic-overcloud.yaml
.
Filling in the template
Additional configuration can be specified either in the provided template or in an additional yaml file, for example ~/templates/ironic.yaml
.
For a hybrid deployment with both bare metal and virtual instances, you must add
AggregateInstanceExtraSpecsFilter
to the list ofNovaSchedulerDefaultFilters
. If you have not setNovaSchedulerDefaultFilters
anywhere, you can do so in ironic.yaml. For an example, see Section 3.3, “Example Templates”.NoteIf you are using SR-IOV, NovaSchedulerDefaultFilters is already set in
tripleo-heat-templates/environments/neutron-sriov.yaml
. AppendAggregateInstanceExtraSpecsFilter
to this list.-
The type of cleaning that occurs before and between deployments is set by
IronicCleaningDiskErase
. By default, this is set to ‘full’ bydeployment/ironic/ironic-conductor-container-puppet.yaml
. Setting this to ‘metadata’ can substantially speed up the process, as it cleans only the partition table, however, since the deployment will be less secure in a multi-tenant environment, you should do this only in a trusted tenant environment. -
You can add drivers with the
IronicEnabledDrivers
parameter. By default,ipmi
,idrac
andilo
are enabled.
For a full list of configuration parameters, see Bare Metal in the Overcloud Parameters guide.
3.2. Network Configuration Copy linkLink copied to clipboard!
If you use the default flat bare metal network, you must create a bridge br-baremetal
for ironic to use. You can specify this in an additional template:
~/templates/network-environment.yaml
parameter_defaults: NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal NeutronFlatNetworks: datacentre,baremetal
parameter_defaults:
NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal
NeutronFlatNetworks: datacentre,baremetal
You can configure this bridge either in the provisioning network (control plane) of the controllers, so that you can reuse this network as the bare metal network, or add a dedicated network. The configuration requirements are the same, however the bare metal network cannot be VLAN-tagged, as it is used for provisioning.
~/templates/nic-configs/controller.yaml
The Bare Metal service in the overcloud is designed for a trusted tenant environment, as the bare metal nodes have direct access to the control plane network of your OpenStack installation.
3.2.1. Configuring a Custom Provisioning Network Copy linkLink copied to clipboard!
The default flat provisioning network can introduce security concerns in a customer environment as a tenant can interfere with the undercloud network. To prevent this risk, you can configure a custom composable bare metal provisioning network for ironic services that does not have access to the control plane:
Configure the shell to access Identity as the administrative user:
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy the
network_data.yaml
file:cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml .
(undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Edit the new
network_data.yaml
file and add a new network for Overcloud provisioning:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Update the
network_environments.yaml
andnic-configs/controller.yaml
files to use the new network.In the
network_environments.yaml
file, add Vlan and remap Ironic networks:ServiceNetMap: IronicApiNetwork: oc_provisioning IronicNetwork: oc_provisioning
ServiceNetMap: IronicApiNetwork: oc_provisioning IronicNetwork: oc_provisioning
Copy to Clipboard Copied! Toggle word wrap Toggle overflow In the
nic-configs/controller.yaml
file, add an interface and necessary parameters:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Copy the
roles_data.yaml
file:cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml .
(undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Edit the new
roles_data.yaml
and add the new network for the controller:networks: ... - OcProvisioning
networks: ... - OcProvisioning
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Include the new
network_data.yaml
androles_data.yaml
files in the deploy command:-n /home/stack/network_data.yaml \ -r /home/stack/roles_data.yaml \
-n /home/stack/network_data.yaml \ -r /home/stack/roles_data.yaml \
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. Example Templates Copy linkLink copied to clipboard!
The following is an example template file. This file might not meet the requirements of your environment. Before using this example, ensure that it does not interfere with any existing configuration in your environment.
~/templates/ironic.yaml
In this example:
-
The
AggregateInstanceExtraSpecsFilter
allows both virtual and bare metal instances, for a hybrid deployment. - Disk cleaning that is done before and between deployments erases only the partition table (metadata).
3.4. Enabling Ironic Introspection in the Overcloud Copy linkLink copied to clipboard!
To enable Bare Metal introspection in the Overcloud, include both the ironic.yaml
and the ironic-inspector.yaml
environment files in the deploy command. You can find these files in the /usr/share/openstack-tripleo-heat-templates/environments/services
directory. Use the following example to include configuration details for the ironic inspector that correspond to your environment:
parameter_defaults: IronicInspectorSubnets: - ip_range: 192.168.101.201,192.168.101.250 IPAImageURLs: '["http://192.168.24.1:8088/agent.kernel", "http://192.168.24.1:8088/agent.ramdisk"]' IronicInspectorInterface: 'br-baremetal'
parameter_defaults:
IronicInspectorSubnets:
- ip_range: 192.168.101.201,192.168.101.250
IPAImageURLs: '["http://192.168.24.1:8088/agent.kernel", "http://192.168.24.1:8088/agent.ramdisk"]'
IronicInspectorInterface: 'br-baremetal'
IronicInspectorSubnets
This parameter can contain multiple ranges and works with both spine and leaf.
IPAImageURLs
This parameter contains details about the IPA kernel and ramdisk. In most cases, you can use the same images that you use on the undercloud. If you omit this parameter, place alternatives on each controller.
IronicInspectorInterface
Use this parameter to specify the bare metal network interface.
If you use a composable Ironic or IronicConductor role, you must include the IronicInspector
service in the Ironic role in your roles file.
ServicesDefault: OS::TripleO::Services::IronicInspector
ServicesDefault:
OS::TripleO::Services::IronicInspector
3.5. Deploying the Overcloud Copy linkLink copied to clipboard!
To enable the Bare Metal service, include your ironic environment files with the -e
option when deploying or redeploying the overcloud, along with the rest of your overcloud configuration.
For example:
For more information about deploying the overcloud, see Deployment command options and Including Environment Files in Overcloud Creation in the Director Installation and Usage guide.
3.6. Testing the Bare Metal Service Copy linkLink copied to clipboard!
You can use the OpenStack Integration Test Suite to validate your Red Hat OpenStack deployment. For more information, see the OpenStack Integration Test Suite Guide.
Additional Ways to Verify the Bare Metal Service:
Configure the shell to access Identity as the administrative user:
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Check that the
nova-compute
service is running on the controller nodes:openstack compute service list -c Binary -c Host -c Status
$ openstack compute service list -c Binary -c Host -c Status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow If you have changed the default ironic drivers, ensure that the required drivers are enabled:
openstack baremetal driver list
$ openstack baremetal driver list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ensure that the ironic endpoints are listed:
openstack catalog list
$ openstack catalog list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow