Manage bare metal nodes The bare metal driver for OpenStack Compute manages provisioning of physical hardware using common cloud APIs and tools such as Orchestration (Heat). The use case for this driver is for single tenant clouds such as a high-performance computing cluster or deploying OpenStack itself. Development efforts are focused on moving the driver out of the Compute code base in the Icehouse release. If you use the bare metal driver, you must create and add a network interface to a bare metal node. Then, you can launch an instance from a bare metal image. You can list and delete bare metal nodes. When you delete a node, any associated network interfaces are removed. You can list and remove network interfaces that are associated with a bare metal node. Commands baremetal-interface-add. Adds a network interface to a bare metal node. baremetal-interface-list. Lists network interfaces associated with a bare metal node. baremetal-interface-remove. Removes a network interface from a bare metal node. baremetal-node-create. Creates a bare metal node. baremetal-node-delete. Removes a bare metal node and any associated interfaces. baremetal-node-list. Lists available bare metal nodes. baremetal-node-show. Shows information about a bare metal node. Create a bare metal node: $ nova baremetal-node-create --pm_address=1.2.3.4 --pm_user=ipmi --pm_password=ipmi $(hostname -f) 1 512 10 aa:bb:cc:dd:ee:ff +------------------+-------------------+ | Property | Value | +------------------+-------------------+ | instance_uuid | None | | pm_address | 1.2.3.4 | | interfaces | [] | | prov_vlan_id | None | | cpus | 1 | | memory_mb | 512 | | prov_mac_address | aa:bb:cc:dd:ee:ff | | service_host | ubuntu | | local_gb | 10 | | id | 1 | | pm_user | ipmi | | terminal_port | None | +------------------+-------------------+ Add a network interface to the node: $ nova baremetal-interface-add 1 aa:bb:cc:dd:ee:ff +-------------+-------------------+ | Property | Value | +-------------+-------------------+ | datapath_id | 0 | | id | 1 | | port_no | 0 | | address | aa:bb:cc:dd:ee:ff | +-------------+-------------------+ Launch an instance from a bare metal image: $ nova boot --image my-baremetal-image --flavor my-baremetal-flavor test +-----------------------------+--------------------------------------+ | Property | Value | +-----------------------------+--------------------------------------+ | status | BUILD | | id | cc302a8f-cd81-484b-89a8-b75eb3911b1b | ... wait for instance to become active ... List bare metal nodes and interfaces: $ nova baremetal-node-list When a node is in use, its status includes the UUID of the instance that runs on it: +----+--------+------+-----------+---------+------------------- +------+------------+-------------+-------------+---------------+ | ID | Host | CPUs | Memory_MB | Disk_GB | MAC Address | VLAN | PM Address | PM Username | PM Password | Terminal Port | +----+--------+------+-----------+---------+------------------- +------+------------+-------------+-------------+---------------+ | 1 | ubuntu | 1 | 512 | 10 | aa:bb:cc:dd:ee:ff | None | 1.2.3.4 | ipmi | | None | +----+--------+------+-----------+---------+------------------- +------+------------+-------------+-------------+---------------+ Show details for a bare metal node: $ nova baremetal-node-show 1 +------------------+--------------------------------------+ | Property | Value | +------------------+--------------------------------------+ | instance_uuid | cc302a8f-cd81-484b-89a8-b75eb3911b1b | | pm_address | 1.2.3.4 | | interfaces | [{u'datapath_id': u'0', u'id': 1, u'port_no': 0, u'address': u'aa:bb:cc:dd:ee:ff'}] | | prov_vlan_id | None | | cpus | 1 | | memory_mb | 512 | | prov_mac_address | aa:bb:cc:dd:ee:ff | | service_host | ubuntu | | local_gb | 10 | | id | 1 | | pm_user | ipmi | | terminal_port | None | +------------------+--------------------------------------+ Set the --availability_zone parameter to specify which zone or node to use to start the server. Separate the zone from the host name with a comma. For example: $ nova boot --availability_zone=zone:host,node host is optional for the --availability_zone parameter. zone:,node also works.