Bare-Metal Node Enrollment and Server Creation
Working with bare-metal nodes and servers.
This guide describes how operators enroll bare-metal nodes in the IaaS Console and how users create bare-metal servers using those enrolled nodes. No command-line steps are required.
IaaS Configuration
The os_rabbitmq_url variable in the inventory is used by the IaaS Console to communicate with Ironic, enabling the migration of baremetal nodes from the provision VPC to a tenant VPC.
To retrieve the RabbitMQ URL:
ssh control0
grep /etc/kolla/ironic-api/ironic.conf -Fe 'rabbit://'
Operator: Enroll a Bare-Metal Node
-
Sign in to the IaaS Console with an operator account.
-
Click Baremetal in the left sidebar.
-
Click enroll BM (top-right of the panel).
-
Fill in the form:
Field Description Node Name A name for the node (for example, gpu-node-01).IPMI Address The IP address of the node’s BMC (for example, 192.168.1.100).IPMI Port The IPMI port (default: 623).IPMI Username The BMC login username. IPMI Password The BMC login password. MAC Address The MAC address of the PXE-boot network interface (format: AA:BB:CC:DD:EE:FF).Automatically inspect hardware after enrollment Runs hardware inspection immediately after enrollment (recommended). -
Click Enroll Node.
Hardware Inspection
If Automatically inspect hardware after enrollment was not selected, trigger inspection manually: select the node on the Baremetal page and click Inspect in the node status panel. Inspection boots a lightweight ramdisk that collects CPU, memory, disk, NIC, and boot configuration details.
Making a Node Available
After inspection completes, move the node to available state: select the node and click Provide in the node status panel. The node is then ready for users to provision bare metal servers.
Node Lifecycle
enroll → manageable → inspecting → available → active
| State | Description |
|---|---|
enroll | Newly registered; no hardware information yet. |
manageable | Platform has authenticated to the BMC; ready for inspection. |
inspecting | Hardware inspection in progress. |
available | Inspection complete; ready to be provisioned. |
active | OS deployed; server is running. |
Users: Create a Bare-Metal Server
- Open Servers panel: In the IaaS Console, go to Servers
- Start creation: Select + Create Server
- Choose server type: Pick Bare Metal
- Select image: Choose the operating system image required for your workload
Optional: Provide a User Script
- Upload script: During server creation, you can attach a user script to customize initialization
- Script types: Depending on the selected operating system, you may provide:
- A bash script
- A cloud-init configuration
- Behavior: The platform applies the script during provisioning to configure packages, users, networking, and other initialization tasks supported by the chosen OS
Once the request is submitted, the platform provisions the bare-metal server on an Active node, applies any provided user script, and makes the instance available in the Servers panel.
Prerequisites
- Operator role: You must have operator permissions in the IaaS Console to enroll hardware
- Hardware readiness: Ensure out-of-band management (BMC/IPMI or Redfish) is reachable and configured. Verify power, networking (PXE-capable NIC), and rack connectivity
- Network placement: Confirm the node is cabled to the provisioning network and the intended tenant networks according to your site design
- Images availability: Required OS images must be available in the catalog. See IAAS_CONSOLE_CONFIGURATION for image management
Enrollment Lifecycle
- Enroll: Operator registers the node via the Console. The platform validates management access
- Inspectable/Discovery: Hardware characteristics are detected (CPU, RAM, disks, NICs).
- Clean/Prepare: The node is sanitized and prepared for deployment
- Active: Node is ready to host bare-metal servers
Typical enrollment completes within minutes, depending on hardware and network speed. If the node remains pending for an extended period, see Troubleshooting.
Image and Placement Guidance
- Sizing: Choose images compatible with the server’s firmware boot mode (UEFI/BIOS) and storage layout
- Placement: The scheduler selects an Active node meeting resource and network constraints. If capacity is unavailable, creation is queued or fails
User Scripts: Examples and Behavior
-
Execution timing: Scripts run during provisioning and first boot, before the server is marked ready
-
Supported formats:
- Bash: Inline boot-time customization
- Cloud-init: Declarative initialization for Linux distributions supporting cloud-init
-
Example (cloud-init):
#cloud-configusers:- name: appuserssh-authorized-keys:- ssh-rsa AAAA... your-keyruncmd:- echo "hello from cloud-init" > /var/tmp/init.txt -
Example (bash):
#!/usr/bin/env bashset -euo pipefailecho "hello from bash" > /var/tmp/init.txt -
Common pitfalls:
- Mismatched OS and script type (e.g., cloud-init on images without cloud-init)
- Using interactive commands or waiting for user input in scripts
Troubleshooting
- Node stuck enrolling: Verify BMC credentials, management network reachability, and that the console shows no hardware errors
- Server creation fails: Check that at least one node is in Active state and that the selected image is compatible with the hardware