Add bare metal nodes

Add bare metal nodes

This section describes the main steps to enroll a bare metal node to Ironic and make it available for provisioning.

To enroll and configure bare metal nodes:

  1. Enroll new nodes to Ironic using the ironic node-create command:

    ironic node-create \
        --name <node-name> \
        --driver <driver-name> \
        --driver-info deploy_ramdisk=<glance UUID of deploy image ramdisk> \
        --driver-info deploy_kernel=<glance UUID of deploy image kernel> \
        --driver-info ipmi_address=<IPMI address of the node> \
        --driver-info ipmi_username=<username for IPMI> \
        --driver-info ipmi_password=<password for the IPMI user> \
        --property memory_mb=<RAM size of the node in MiB> \
        --property cpus=<Number of CPUs on the node> \
        --property local_gb=<size of node's disk in GiB> \
        --property cpu_arch=<architecture of node's CPU>
    

    Where the local_gb property is the size of the biggest disk of the node. We recommend setting it to a 1 GB smaller size than the actual size to accommodate for the partitions table to be created and the extra configuration drive partition.

  2. Add ports for the node that correspond to the actual NICs of the node:

    ironic port-create --node <UUID_OF_IRONIC_NODE> --address <MAC_ADDRESS>
    

    Note

    At least one port for the node must be created for the NIC that is attached to the provisioning network and from which the node can boot over PXE.

  3. Alternatively, enroll the nodes by adding them to the Reclass model on the cluster level:

    parameters:
      ironic:
        client:
          enabled: true
          nodes:
            admin_identity:
              - name: <node-name>
                driver: pxe_ipmitool
                properties:
                  local_gb: <size of node's disk in GiB>
                  cpus: <Number of CPUs on the node>
                  memory_mb: <RAM size of the node in MiB>
                  cpu_arch: <architecture of node's CPU>
                driver_info:
                  ipmi_username: <username for IPMI>
                  ipmi_password: <password for the IPMI user>
                  ipmi_address: <IPMI address of the node>
                ports:
                  - address: <MAC address of the node port1>
                  - address: <MAC address of the node port2>