Quick Start Guide

xCAT can be a comprehensive system to manage infrastructure elements in Data Center, bare-metal servers, switches, PDUs, and Operation System distributions. This quick start guide will instruct you to set up a xCAT system and manage an IPMI managed bare metal server with Red Hat-based distribution in 15 minutes.

The steps below will be focused on RHEL7, however they should work for other distribution, such as CentOS, SLES, etc, details Operating System & Hardware Support Matrix


Assume there are two servers named xcatmn.mydomain.com and cn1.mydomain.com.

  1. They are in the same subnet
  2. cn1.mydomain.com has BMC which xcatmn.mydomain.com can access it.
  3. xcatmn.mydomain.com has Red Hat OS installed, and uses IP
  4. xcatmn.mydomain.com has access to internet.
  5. cn1.mydomain.com BMC IP address is
  6. Prepare a full DVD for OS provision, and not a Live CD ISO, for this example, will use RHEL-7.6-20181010.0-Server-x86_64-dvd1.iso ISO, you can download it from Red Hat website.

All the following steps should be executed in xcatmn.mydomain.com.

Prepare the Management Node xcatmn.mydomain.com

  1. Disable SELinux:

    echo 0 > /selinux/enforce
    sed -i 's/^SELINUX=.*$/SELINUX=disabled/' /etc/selinux/config
  2. Set the hostname of xcatmn.mydomain.com:

    hostname xcatmn.mydomain.com
  3. Set the IP to STATIC in the /etc/sysconfig/network-scripts/ifcfg-<proc_nic> file

  4. Update your /etc/resolv.conf with DNS settings and make sure that the node could visit github and xcat official website.

  5. Configure any domain search strings and nameservers to the /etc/resolv.conf file

  6. Add xcatmn into /etc/hosts: xcatmn xcatmn.mydomain.com
  7. Install xCAT:

    wget https://raw.githubusercontent.com/xcat2/xcat-core/master/xCAT-server/share/xcat/tools/go-xcat -O - >/tmp/go-xcat
    chmod +x /tmp/go-xcat
    /tmp/go-xcat --yes install
    source /etc/profile.d/xcat.sh
  8. Configure the system password for the `root user on the compute nodes:

    chtab key=system passwd.username=root passwd.password=abc123

Stage 1 Add your first node and control it with out-of-band BMC interface

  1. Define compute node cn1:

    mkdef -t node cn1 --template x86_64-template ip= mac=42:3d:0a:05:27:0c bmc= bmcusername=USERID bmcpassword=PASSW0RD
  2. Configure DNS:

    makehosts cn1
    makedns -n
  3. Check cn1 Hardware Control:

cn1 power management:

rpower cn1 on
rpower cn1 state
cn1: on

cn1 firmware information:

rinv cn1 firm
cn1: UEFI Version: 1.31 (TDE134EUS  2013/08/27)
cn1: Backup UEFI Version: 1.00 (TDE112DUS )
cn1: Backup IMM Version: 1.25 (1AOO26K 2012/02/23)
cn1: BMC Firmware: 3.10 (1AOO48H 2013/08/22 18:49:44)

Stage 2 Provision a node and manage it with parallel shell

  1. In order to PXE boot, you need a DHCP server to hand out addresses and direct the booting system to the TFTP server where it can download the network boot files. Configure DHCP:

    makedhcp -n
  2. Copy all contents of Distribution ISO into /install directory, create OS repository and osimage for OS provision:

    copycds RHEL-7.6-20181010.0-Server-x86_64-dvd1.iso

    After copycds, the corresponding basic osimage will be generated automatically. Later, package list or postscripts for target compute nodes can be customised. List generated osimages:

    lsdef -t osimage
  3. Use xcatprobe to precheck xCAT management node ready for OS provision:

    xcatprobe xcatmn
    [mn]: Checking all xCAT daemons are running...                                      [ OK ]
    [mn]: Checking xcatd can receive command request...                                 [ OK ]
    [mn]: Checking 'site' table is configured...                                        [ OK ]
    [mn]: Checking provision network is configured...                                   [ OK ]
    [mn]: Checking 'passwd' table is configured...                                      [ OK ]
    [mn]: Checking important directories(installdir,tftpdir) are configured...          [ OK ]
    [mn]: Checking SELinux is disabled...                                               [ OK ]
    [mn]: Checking HTTP service is configured...                                        [ OK ]
    [mn]: Checking TFTP service is configured...                                        [ OK ]
    [mn]: Checking DNS service is configured...                                         [ OK ]
    [mn]: Checking DHCP service is configured...                                        [ OK ]
    ... ...
    [mn]: Checking dhcpd.leases file is less than 100M...                               [ OK ]
    =================================== SUMMARY ====================================
    [MN]: Checking on MN...                                                             [ OK ]
  4. Start the Diskful OS Deployment:

    rinstall cn1 osimage=rhels7.6-x86_64-install-compute
  5. Monitor Installation Process:

    makegocons cn1
    rcons cn1

    Note: The keystroke ctrl+e c . will disconnect you from the console.

    After 5-10 min verify provision status is booted:

    lsdef cn1 -i status
    Object name: cn1

    Use xdsh to check cn1 OS version, OS provision is successful:

    xdsh cn1 more /etc/*release
    cn1: ::::::::::::::
    cn1: /etc/os-release
    cn1: ::::::::::::::
    cn1: NAME="Red Hat Enterprise Linux Server"
    cn1: VERSION="7.6 (Maipo)"
    ... ...