Red Hat OpenStack Platform 7 director (OSP director) cli simple install part 2

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       |
+--------------------------------------+------+---------------+-------------+-----------------+-------------+

nodesbeforediscovery

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
discoveryboot

Discovered hosts
discovered

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
duringinstall

[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

doneosp

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 ~]$