Part 2 of the blog series will show you how you can register the nodes to your OSP director via command line create flavors and deploy a simple non HA OpenStack environment.
1. To register the blades I created the following json file. Please keep in mind that if you use hp blades with ilo2 you will have to use the default pxe_ipmitool. The MAC address you see in the json is the mac address from the interface you would like to boot from.
{ "nodes":[ { "mac":[ "1C:C1:DE:EB:FD:46" ], "cpu":"12", "memory":"32768", "disk":"60", "arch":"x86_64", "pm_type":"pxe_ipmitool", "pm_user":"admin", "pm_password":"redhat", "pm_addr":"192.168.1.7" }, { "mac":[ "1C:C1:DE:71:B6:BE" ], "cpu":"4", "memory":"16384", "disk":"60", "arch":"x86_64", "pm_type":"pxe_ipmitool", "pm_user":"admin", "pm_password":"redhat", "pm_addr":"192.168.1.18" } ] }
2. Import the node definitions into OSP director
[stack@ospdirector ~]$ openstack baremetal import --json ~/blades.json
3. Assign the kernel and ramdisk to all nodes defined in the blades.json file
[stack@ospdirector ~]$ openstack baremetal configure boot
4. Check if everything got imported correctly
[stack@ospdirector ~]$ openstack baremetal list +--------------------------------------+------+---------------+-------------+-----------------+-------------+ | UUID | Name | Instance UUID | Power State | Provision State | Maintenance | +--------------------------------------+------+---------------+-------------+-----------------+-------------+ | f1bbb294-c0b0-45bc-8431-66bf025ab5b7 | None | None | power off | available | False | | 489bd260-be3f-400b-9580-84c0b8bd79e6 | None | None | power off | available | False | +--------------------------------------+------+---------------+-------------+-----------------+-------------+
5. Lets inspect the nodes. IPMI will start the nodes and boot them into discovery mode.
[stack@ospdirector ~]$ openstack baremetal introspection bulk start Setting available nodes to manageable... Starting introspection of node: f1bbb294-c0b0-45bc-8431-66bf025ab5b7 Starting introspection of node: 489bd260-be3f-400b-9580-84c0b8bd79e6 Waiting for discovery to finish... Discovery for UUID 489bd260-be3f-400b-9580-84c0b8bd79e6 finished successfully. Discovery for UUID f1bbb294-c0b0-45bc-8431-66bf025ab5b7 finished successfully. Setting manageable nodes to available... Node f1bbb294-c0b0-45bc-8431-66bf025ab5b7 has been set to available. Node 489bd260-be3f-400b-9580-84c0b8bd79e6 has been set to available. Discovery completed.
Booting into discovery
Discovered hosts
6. Create the flavor for the test scenario (we only create one flavor for all hosts)
[stack@ospdirector ~]$ openstack flavor create --id auto --ram 4096 --disk 40 --vcpus 1 baremetal
7. Set the boot mode for the flavors to local
[stack@ospdirector ~]$ openstack flavor set --property "capabilities:boot_option"="local" baremetal
8. Now we are ready to deploy.
[stack@ospdirector ~]$ openstack overcloud deploy --templates --control-scale 1 --compute-scale 1 --ntp-server 198.55.111.50 --neutron-network-type vxlan --neutron-tunnel-types vxlan --timeout 90 --debug
9. Look at the progress
[stack@ospdirector ~]$ heat stack-list --show-nested +--------------------------------------+----------------------------------------------------------------------------+--------------------+----------------------+--------------------------------------+ | id | stack_name | stack_status | creation_time | parent | +--------------------------------------+----------------------------------------------------------------------------+--------------------+----------------------+--------------------------------------+ | 33bfb7e0-9b34-4250-a004-af37f608d2cf | overcloud | CREATE_IN_PROGRESS | 2015-08-16T18:22:35Z | None | | 435dc7f7-3308-4807-8904-d5442508711e | overcloud-Networks-32rvmmduffhu | CREATE_COMPLETE | 2015-08-16T18:22:38Z | 33bfb7e0-9b34-4250-a004-af37f608d2cf | | 30a1079e-64b2-4d58-9c8e-dcbf224c652a | overcloud-Networks-32rvmmduffhu-StorageMgmtNetwork-wtonza4e5bw2 | CREATE_COMPLETE | 2015-08-16T18:22:39Z | 435dc7f7-3308-4807-8904-d5442508711e | | 4479ccff-415c-489e-afbe-b36b480ed9f5 | overcloud-Networks-32rvmmduffhu-TenantNetwork-gimrl3excqx4 | CREATE_COMPLETE | 2015-08-16T18:22:39Z | 435dc7f7-3308-4807-8904-d5442508711e | | b33d3efa-3fb7-4a29-ba75-f9cc84959a87 | overcloud-VipConfig-rgs2gbejbezm | CREATE_COMPLETE | 2015-08-16T18:22:40Z | 33bfb7e0-9b34-4250-a004-af37f608d2cf | | b75050ad-4cc3-4ab9-8593-6059e4f0943a | overcloud-Networks-32rvmmduffhu-InternalNetwork-dcpc2r7ode6m | CREATE_COMPLETE | 2015-08-16T18:22:40Z | 435dc7f7-3308-4807-8904-d5442508711e | | cb907b21-4747-450f-85c4-d471fc7ffd7b | overcloud-Networks-32rvmmduffhu-ExternalNetwork-3vnkwpojgwor | CREATE_COMPLETE | 2015-08-16T18:22:40Z | 435dc7f7-3308-4807-8904-d5442508711e | | 3b9278f9-bb05-4c61-8536-85f910079242 | overcloud-Networks-32rvmmduffhu-StorageNetwork-tziih5yvnz4s | CREATE_COMPLETE | 2015-08-16T18:22:41Z | 435dc7f7-3308-4807-8904-d5442508711e | | 3179955a-13e2-4ebb-982d-497871913366 | overcloud-ObjectStorage-r5rdi6pu43u3 | CREATE_COMPLETE | 2015-08-16T18:22:44Z | 33bfb7e0-9b34-4250-a004-af37f608d2cf | | c91c36f0-9bb6-474c-afe4-74b36b778e5f | overcloud-CephStorage-ntsvvt75psbh | CREATE_COMPLETE | 2015-08-16T18:22:45Z | 33bfb7e0-9b34-4250-a004-af37f608d2cf | | 36716f1f-d619-47d7-aab3-d69edcd79cc0 | overcloud-InternalApiVirtualIP-lohuosudzibc | CREATE_COMPLETE | 2015-08-16T18:22:47Z | 33bfb7e0-9b34-4250-a004-af37f608d2cf | | 35e6781f-56f9-46fc-8d73-0ba59125db73 | overcloud-RedisVirtualIP-vsp633woaqcn | CREATE_COMPLETE | 2015-08-16T18:22:49Z | 33bfb7e0-9b34-4250-a004-af37f608d2cf | | dfda39da-99e2-4860-831e-73b698137ece | overcloud-StorageMgmtVirtualIP-bmyldzizjmpa | CREATE_COMPLETE | 2015-08-16T18:22:50Z | 33bfb7e0-9b34-4250-a004-af37f608d2cf | | 10e18542-be81-4b1b-90e4-7a1b9254fbe9 | overcloud-StorageVirtualIP-iifyqfbosjwn | CREATE_COMPLETE | 2015-08-16T18:22:51Z | 33bfb7e0-9b34-4250-a004-af37f608d2cf | | bf13367e-817b-4d15-a13a-95ea6d8b694b | overcloud-PublicVirtualIP-zkdwrd25sdaa | CREATE_COMPLETE | 2015-08-16T18:22:51Z | 33bfb7e0-9b34-4250-a004-af37f608d2cf | | c6980d62-ac58-40f8-b29f-273dfcb0e345 | overcloud-VipMap-7vlmqgpxatrv | CREATE_COMPLETE | 2015-08-16T18:22:55Z | 33bfb7e0-9b34-4250-a004-af37f608d2cf | | 80ed4867-a727-4b0f-bd53-81c894c951eb | overcloud-Compute-cv2ixk53yem3 | CREATE_IN_PROGRESS | 2015-08-16T18:22:59Z | 33bfb7e0-9b34-4250-a004-af37f608d2cf | | da6466ff-1693-459e-804a-e1dab4132eb1 | overcloud-BlockStorage-vo4sim7ab6uo | CREATE_COMPLETE | 2015-08-16T18:23:00Z | 33bfb7e0-9b34-4250-a004-af37f608d2cf | | e8b807d5-2226-4cb9-abe9-f47fe8e7458e | overcloud-Controller-e6xv26hhop7f | CREATE_IN_PROGRESS | 2015-08-16T18:23:03Z | 33bfb7e0-9b34-4250-a004-af37f608d2cf | | c37de593-9b60-4ac3-9fe4-edc7bd39912b | overcloud-Compute-cv2ixk53yem3-0-nwy2d42aixyb-NodeUserData-axvx7ksn3izx | CREATE_COMPLETE | 2015-08-16T18:23:04Z | d0b5a90c-d67a-4cc8-879f-9da1664b7d5e | | d0b5a90c-d67a-4cc8-879f-9da1664b7d5e | overcloud-Compute-cv2ixk53yem3-0-nwy2d42aixyb | CREATE_IN_PROGRESS | 2015-08-16T18:23:04Z | 80ed4867-a727-4b0f-bd53-81c894c951eb | | 47b5b32c-4135-4010-a3ff-688f8679e7bb | overcloud-Compute-cv2ixk53yem3-0-nwy2d42aixyb-UpdateConfig-fwtn3xtant57 | CREATE_COMPLETE | 2015-08-16T18:23:05Z | d0b5a90c-d67a-4cc8-879f-9da1664b7d5e | | 3ca61f9f-64ca-4fa3-87bc-17ca875f2109 | overcloud-Controller-e6xv26hhop7f-0-gr4rkg43icqq-UpdateConfig-bvymvawh4jed | CREATE_COMPLETE | 2015-08-16T18:23:08Z | fac7ac12-06b9-41f3-9c41-52cf880c744f | | fac7ac12-06b9-41f3-9c41-52cf880c744f | overcloud-Controller-e6xv26hhop7f-0-gr4rkg43icqq | CREATE_IN_PROGRESS | 2015-08-16T18:23:08Z | e8b807d5-2226-4cb9-abe9-f47fe8e7458e | | 098431d0-9ea7-4f52-babb-273d147db8b1 | overcloud-Controller-e6xv26hhop7f-0-gr4rkg43icqq-NodeUserData-c45ewhuiziez | CREATE_COMPLETE | 2015-08-16T18:23:09Z | fac7ac12-06b9-41f3-9c41-52cf880c744f | +--------------------------------------+----------------------------------------------------------------------------+--------------------+----------------------+--------------------------------------+
10. During the install you will see the following screen if you look at the ilo
[stack@ospdirector ~]$ heat stack-list --show-nested +--------------------------------------+---------------------------------------------------------------------------------------------------------------+-----------------+----------------------+--------------------------------------+ | id | stack_name | stack_status | creation_time | parent | +--------------------------------------+---------------------------------------------------------------------------------------------------------------+-----------------+----------------------+--------------------------------------+ | 33bfb7e0-9b34-4250-a004-af37f608d2cf | overcloud | CREATE_COMPLETE | 2015-08-16T18:22:35Z | None | | 435dc7f7-3308-4807-8904-d5442508711e | overcloud-Networks-32rvmmduffhu | CREATE_COMPLETE | 2015-08-16T18:22:38Z | 33bfb7e0-9b34-4250-a004-af37f608d2cf | | 30a1079e-64b2-4d58-9c8e-dcbf224c652a | overcloud-Networks-32rvmmduffhu-StorageMgmtNetwork-wtonza4e5bw2 | CREATE_COMPLETE | 2015-08-16T18:22:39Z | 435dc7f7-3308-4807-8904-d5442508711e | | 4479ccff-415c-489e-afbe-b36b480ed9f5 | overcloud-Networks-32rvmmduffhu-TenantNetwork-gimrl3excqx4 | CREATE_COMPLETE | 2015-08-16T18:22:39Z | 435dc7f7-3308-4807-8904-d5442508711e | | b33d3efa-3fb7-4a29-ba75-f9cc84959a87 | overcloud-VipConfig-rgs2gbejbezm +--------------------------------------+---------------------------------------------------------------------------------------------------------------+-----------------+----------------------+--------------------------------------+
DEBUG: os_cloud_config.keystone Creating endpoint for service 094cc12c3d7f43f1b99e08ef121485b7. DEBUG: keystoneclient.session REQ: curl -g -i -X POST http://192.168.2.14:35357/v2.0/endpoints -H "User-Agent: python-keystoneclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}def0eb731b8fbbc104161221df9b9139962a817b" -d '{"endpoint": {"adminurl": "http://192.168.2.12:9696/", "service_id": "094cc12c3d7f43f1b99e08ef121485b7", "region": "regionOne", "internalurl": "http://192.168.2.12:9696/", "publicurl": "http://192.168.2.14:9696/"}}' DEBUG: keystoneclient.session RESP: [200] content-length: 256 vary: X-Auth-Token connection: keep-alive date: Sun, 16 Aug 2015 18:55:14 GMT content-type: application/json x-openstack-request-id: req-3fe1be7f-27f2-4700-b616-4988854ebd07 RESP BODY: {"endpoint": {"adminurl": "http://192.168.2.12:9696/", "region": "regionOne", "internalurl": "http://192.168.2.12:9696/", "service_id": "094cc12c3d7f43f1b99e08ef121485b7", "id": "9aa2e2f02d8b423d81711df5fe60f663", "publicurl": "http://192.168.2.14:9696/"}} DEBUG: os_cloud_config.utils.clients Creating nova client. Overcloud Endpoint: http://192.168.2.14:5000/v2.0/ Overcloud Deployed DEBUG: openstackclient.shell clean_up DeployOvercloud
11. If you would like to login to your overcloud instances you have to source the overcloud.rc file which you find in stacks home directory.
[stack@ospdirector ~]$ source ~/overcloud.rc [stack@ospdirector ~]$ ssh heat-admin@192.168.2.14 Last login: Sun Aug 16 17:03:31 2015 from 192.168.2.2 [heat-admin@overcloud-controller-0 ~]$