Installation and Configuration

Cumulus OS Installtion


The following assumes that the physical switches have power and have obtained a DHCP IP address from the xCAT open range.

xCAT provides support for detecting and installing the Cumulus Linux OS into ONIE enabled switches by utilizing DHCP to detect “onie_vendor” from the vendor-class-identifier string and then send it the Cumulus Linux OS installer.

  1. Create a pre-defined switch definition for the ONIE switch using the onieswitch template.

    The mac address of the switch management port is required for xCAT to configure the DHCP information and send over the OS to install on the switch.

    Small Clusters

    If you know the mac address of the management port on the switch, create the pre-defined switch definition providing the mac address.

    mkdef frame01sw1 --template onieswitch arch=armv71 \
        ip= mac="aa:bb:cc:dd:ee:ff"

    Large Clusters

    xCAT’s switchdiscover command can be used to discover the mac address and fill in the predefined switch definitions based on the switch/switchport mapping.

    1. Define all the switch objects providing the switch/switchport mapping:

      mkdef frame01sw1 --template onieswitch arch=armv71 \
          ip= switch=coresw1 switchport=1
      mkdef frame02sw1 --template onieswitch arch=armv71 \
          ip= switch=coresw1 switchport=2
      mkdef frame03sw1 --template onieswitch arch=armv71 \
          ip= switch=coresw1 switchport=3
      mkdef frame04sw1 --template onieswitch arch=armv71 \
          ip= switch=coresw1 switchport=4
    2. Leverage switchdiscover over the DHCP range to automatically detect the MAC address and write them into the predefined switches above.

      switchdiscover --range <IP range>
  2. Run the nodeset command to set the provmethod attribute of the target switch(es) to the Cumulus Linux install image and prepare the DHCP/BOOTP lease information for the switch:

    # nodeset frame01sw1 osimage=cumulus3.5.2-armel
    # lsdef frame01sw1
    Object name: frame01sw1
    usercomment=Edgecore Networks Switch

    nodeset will executing the makedhcp command and kick off the network install of the ONIE enabled switch. If there is no OS pre-loaded on the switch, the switch continues to send a DHCPREQUEST out to the network. After makedhcp is run against the switch, an entry is added to the leases file that will respond to the request with the Cumulus Linux installer file.

    host frame1sw1 {
      hardware ethernet 8c:ea:1b:12:ca:40;
            supersede server.ddns-hostname = "frame1sw1";
            supersede host-name = "frame1sw1";
            if substring (option vendor-class-identifier, 0, 11) = "onie_vendor" {
              supersede www-server = "";

    Typical installation time is around 1 hour

Configure xCAT Remote Commands

After Cumulus Linux OS is installed, a default user cumulus will be created with default password: CumulusLinux!.

To ease in the management of the switch, xCAT provides a script to help configure password-less ssh as the root user. This script sends over the xCAT ssh keys so that the xCAT remote commands (xdsh, xdcp, etc) can be run against the ONIE switches.

Execute the following to sync the xCAT keys to the switch:

rspconfig frame01sw1 sshcfg

Validate the ssh keys are correctly configured by running a xdsh command:

xdsh frame01sw1 uptime

Activate the License

After Cumulus Linux OS is installed onto the ONIE switch, only the serial port console and the management ethernet port is enabled. To activate the rest of the switch ports, the license file needs to be installed onto the switch.

  1. Copy the license file to the switch:

    xdcp frame01sw1 /install/custom/sw_os/cumulus/licensefile.txt /root/
  2. Activate the license:

    xdsh frame01sw1 "/usr/cumulus/bin/cl-license -i /root/licensefile.txt"
  3. Verify that the license file is successfully installed:

    xdsh frame01sw1 /usr/cumulus/bin/cl-license

    Output should be similar to: frame01sw1|xxxxxxxxxxxxxxx

  4. Reboot the switch to apply the license file:

    xdsh frame01sw1 reboot

Enable SNMP

In order to utilize xcatprobe switch_macmap, snmp needs to be enabled. To enable, run the enablesnmp postscript on the switch:

updatenode frame01sw1 -P enablesnmp

To configuring SNMPv3 after enable snmp, set user, authentication and/or encryption for the switches:

chdef frame01sw1 snmpauth=sha snmppassword=xcatpassw0rd snmpprivacy=DES snmpusername=xcatadmin

then execute the configonie command to add the snmp user for the switch:

/opt/xcat/share/xcat/scripts/configonie --switches frame01sw1 --snmp

To verify the SNMPv3 configuration, run xcatprobe switch_macmap command, will show following results:

#xcatprobe switch_macmap frame01sw1 -V
<INFO>frame1sw1: Attempting to refresh switch information...
<INFO>frame1sw1: Generate SNMP session with parameter:
            'UseNumeric' => '1'
            'SecName' => 'xcatadmin'
            'AuthPass' => 'xcatpassw0rd'
            'Version' => '3'
            'PrivProto' => 'DES'
            'DestHost' => ''
            'SecLevel' => 'authPriv'
            'AuthProto' => 'SHA'
            'PrivPass' => 'xcatpassw0rd'
<INFO>frame1sw1: SNMP Session query OID:"."
<INFO>frame1sw1: SNMP Session get data for OID:".":
             '1' => 'lo'
             '2' => 'eth0'
             '3' => 'swp1'
             '4' => 'swp2'
             '5' => 'swp3'

...........................more output.....................