Getting Started
The staging-ovirt driver allows OpenStack to easily use ovirt/RHV virtual machines as overcloud nodes. For those of us running virtualized OpenStack labs, it’s a huge step forward – as we either were previously having to hack our way around pxe_ssh or vmbc. Neither was a great solution.
In order to use the staging-ovirt driver , I first I needed to configure the undercloud to use the staging-ovirt driver. See undercloud.conf below.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[DEFAULT] | |
local_ip = 10.1.98.2/24 | |
undercloud_public_vip = 10.1.98.3 | |
undercloud_admin_vip = 10.1.98.4 | |
local_interface = eth1 | |
masquerade_network = 10.1.98.0/24 | |
dhcp_start = 10.1.98.100 | |
dhcp_end = 10.1.98.120 | |
network_cidr = 10.1.98.0/24 | |
network_gateway = 10.1.98.2 | |
inspection_iprange = 10.1.98.130,10.1.98.150 | |
inspection_runbench = false | |
undercloud_debug = false | |
store_events = false | |
enabled_hardware_types = staging-ovirt | |
inspection_enable_uefi = false |
Then create an instackenv.json. In the example below pm_addr is the IP of my local RHV manager.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"arch": "x86_64", | |
"cpu": "1", | |
"disk": "10", | |
"mac": [ | |
"00:1a:4a:16:01:5a" | |
], | |
"memory": "1024", | |
"name": "ospd13-ctrl01", | |
"pm_addr": "10.1.99.10", | |
"pm_password": "redhat", | |
"pm_type": "staging-ovirt", | |
"pm_user": "admin@internal", | |
"pm_vm_name": "ospd13-ctrl01", | |
"capabilities": "profile:control,boot_option:local" |
You should then be able to import your nodes.
[simterm]
$ openstack overcloud node import instackenv.json
[/simterm]
Troubleshooting
Note that I ran into an error importing my nodes. Error shown below.
[{u’result’: u’Node 09dfefec-e5c3-42c4-93d0-45fb44ce37a8 did not reach state “manageable”, the state is “enroll”, error: Failed to get power state for node 09dfefec-e5c3-42c4-93d0-45fb44ce37a8. Error: global name \’sdk\’ is not defined’}, {u’result’: u’Node 59dce2eb-3aea-41f9-aec2-3f13deece30b did not reach state “manageable”, the state is “enroll”, error: Failed to get power state for node 59dce2eb-3aea-41f9-aec2-3f13deece30b. Error: global name \’sdk\’ is not defined’}, {u’result’: u’Node 0895a6d0-f934-44d0-9c26-25e61b6679cb did not reach state “manageable”, the state is “enroll”, error: Failed to get power state for node 0895a6d0-f934-44d0-9c26-25e61b6679cb. Error: global name \’sdk\’ is not defined’}, {u’result’: u’Node 68bdf1cb-fe1f-48ab-b96d-fb5edaf17154 did not reach state “manageable”, the state is “enroll”, error: Failed to get power state for node 68bdf1cb-fe1f-48ab-b96d-fb5edaf17154. Error: global name \’sdk\’ is not defined’}]
Help was found here.
Apparently I was missing a package. I needed to yum install the package shown below and restart ironic-conductor
[simterm]
# sudo yum -y install python-ovirt-engine-sdk4.x86_64
# sudo systemctl restart openstack-ironic-conductor.service
[/simterm]