VirtualBMC¶
VirtualBMC is a small CLI that allows users to create a virtual BMC to manage a virtual machines using the IPMI protocol, similar to how real bare metal machines are managed. It can be used to to enable testing bare metal deployments in completely virtual environments.
Stable Branch
Ironic also ships a pxe_ssh
driver that can be used for that purpose,
but it has been deprecated and its use is discouraged.
Warning
VirtualBMC is not meant for production environments.
Installation¶
VirtualBMC is available from RDO repositories starting with the Ocata release:
sudo yum install -y python-virtualbmc
It is usually installed and used on the hypervisor where the virtual machines reside.
Creating virtual BMC¶
Every virtual machine needs its own virtual BMC. Create it with:
vbmc add <domain> --port 6230 --username admin --password password
Note
You need to use a different port for each domain. Port numbers lower than 1025 requires the user to have root privilege in the system.
Note
For tripleo-quickstart you may have to specify
--libvirt-uri=qemu:///session
.
Start the virtual BMCs:
vbmc start <domain>
Warning
This step has to be repeated after virtual host reboot.
Test the virtual BMC to see if it’s working. For example, to power on the virtual machine do:
ipmitool -I lanplus -U admin -P password -H 127.0.0.1 -p 6230 power on
Enrolling virtual machines¶
In the undercloud, populate the instackenv.json
with new “bare metals”
in a similar way to real bare metal machines (see instackenv.json) with
two exceptions:
set
pm_port
to the port you specified when Creating virtual BMCpopulate
mac
field even if you plan to use introspection
For example:
{
"nodes": [
{
"pm_type": "ipmi",
"mac": [
"00:0a:f2:88:12:aa"
],
"pm_user": "admin",
"pm_password": "password",
"pm_addr": "172.16.0.1",
"pm_port": "6230",
"name": "compute-0"
}
]
}
Migrating from pxe_ssh to VirtualBMC¶
If you already have a virtual cloud deployed and want to migrate from the
deprecated pxe_ssh
driver to ipmi
using VirtualBMC,
follow Creating virtual BMC, then update the existing nodes to change
their drivers and certain driver properties:
openstack baremetal node set $NODE_UUID_OR_NAME \
--driver ipmi \
--driver-info ipmi_address=<IP address of the virthost> \
--driver-info ipmi_port=<Virtual BMC port> \
--driver-info ipmi_username="admin" \
--driver-info ipmi_password="password"
Stable Branch
For the Ocata release, use pxe_ipmitool
driver instead of ipmi
.
In the case of bare metal service in the overcloud, you will first have to configure the deployment to include the pxe_ipmitool driver, then rerun the deployment command, for example:
parameter_defaults:
IronicEnabledDrivers:
- pxe_ipmitool
- pxe_ssh
Before updating to Pike release, make sure to remove the pxe_ssh driver from the deployment configuration, as it will be removed from Ironic, then rerun the deployment command, for example:
parameter_defaults:
IronicEnabledDrivers:
- pxe_ipmitool
To validate after updating deployment and verify everything is populated properly:
openstack baremetal node validate $NODE_UUID_OR_NAME | grep power