Skip to main content
Version: v25.1.1

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

  1. Sign in to the IaaS Console with an operator account.

  2. Click Baremetal in the left sidebar.

  3. Click enroll BM (top-right of the panel).

  4. Fill in the form:

    FieldDescription
    Node NameA name for the node (for example, gpu-node-01).
    IPMI AddressThe IP address of the node’s BMC (for example, 192.168.1.100).
    IPMI PortThe IPMI port (default: 623).
    IPMI UsernameThe BMC login username.
    IPMI PasswordThe BMC login password.
    MAC AddressThe MAC address of the PXE-boot network interface (format: AA:BB:CC:DD:EE:FF).
    Automatically inspect hardware after enrollmentRuns hardware inspection immediately after enrollment (recommended).
  5. 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
StateDescription
enrollNewly registered; no hardware information yet.
manageablePlatform has authenticated to the BMC; ready for inspection.
inspectingHardware inspection in progress.
availableInspection complete; ready to be provisioned.
activeOS 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:
  • 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-config
    users:
    - name: appuser
    ssh-authorized-keys:
    - ssh-rsa AAAA... your-key
    runcmd:
    - echo "hello from cloud-init" > /var/tmp/init.txt
  • Example (bash):

    #!/usr/bin/env bash
    set -euo pipefail
    echo "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