Files
tripleo-docs/deploy-guide/source/environments/virtualbmc.rst
Alex Schultz c6918e5da6 Migrate install to deploy-guide
The deployment guide is currently pointed at triplo-docs but it has been
requested that we actually publish a deployment guide. This change
extracts many of the installation doc pages and moves them into the
deploy-guide source tree.  Once the deploy-guide is published, we will
follow up to reference the deployment guide from tripleo-docs.

Change-Id: I0ebd26f014180a92c6cf4ab0929d99b2d860796f
2019-08-16 15:42:17 -06:00

3.9 KiB

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) with two exceptions:

  • set pm_port to the port you specified when Creating virtual BMC
  • populate 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