Ironic/TripleO
Using Ironic with TripleO
In this section, we will go over how to set up Ironic within the TripleO enviroment.
- Note: TripleO is under rapid development and may invalidate this walk thru.
If not familiar with TripleO and / or have not used the DiskImage-Builder (DIB) tool before, please read and familiarize yourself with the TripleO story. Here are some good starting points:
Check out this revision of TripleO:
https://review.openstack.org/#/c/72969
Switch the undercloud to build with Ironic by doing:
export USE_IRONIC=1
Then, follow TripleO's Devtest-Doc up to the devtest_undercloud section.
Register the Ironic service
In devtest_undercloud-walkthru's step #10, nodes are registered to the undercloud's nova-baremetal and not Ironic. Instead of that, we'll create a 'baremetal' node and register it with ironic, via the undercloud.
Allow Ironic's SSH driver to connect to your local machine:
ssh heat-admin@$UNDERCLOUD_IP "cat /opt/stack/boot-stack/ironic-ssh-power-key.pub" >> ~/.ssh/authorized_keys
Copy the Ironic API credentials to your local machine:
ssh heat-admin@$UNDERCLOUD_IP -- 'sudo cat /root/stackrc' > $TRIPLEO_ROOT/tripleo-incubator/ironicrc sed -i "s/localhost/$UNDERCLOUD_IP/" $TRIPLEO_ROOT/tripleo-incubator/ironicrc source $TRIPLEO_ROOT/tripleo-incubator/ironicrc
Create an emulated baremetal node
This will create a 'baremetal' node:
export UNDERCLOUD_MAC=$(create-nodes $NODE_CPU $NODE_MEM $NODE_DISK $NODE_ARCH 1)
Use the ironic client to enroll the baremetal node:
HOST_IP=$(ip addr show virbr0 | grep inet | awk '{print $2}' | sed 's/\/[0-9]*//') CHASSIS=$(ironic chassis-create -d TestChassis | grep uuid | awk '{print $4}') NODE=$(ironic node-create -c $CHASSIS -d pxe_ssh | grep ' uuid ' | awk '{print $4}') ironic port-create -n $NODE -a $UNDERCLOUD_MAC ironic node-update $NODE add \ driver_info/ssh_virt_type=virsh \ driver_info/ssh_address=$HOST_IP \ driver_info/ssh_key_filename=/opt/stack/boot-stack/ironic-ssh-power-key \ driver_info/ssh_username=$(whoami)
Confirm everything is enrolled and correct:
ironic node-show $NODE
You can now control the power state of this node with this command:
ironic node-set-power-state $NODE [on|off|reboot]