Customize Installation using Golden ISO

Golden ISO (GISO) is a customized ISO that a user can build to suit the installation requirement. The user can customize the installable image to include the standard base image with the basic functional components, and add additional RPMs, SMUs and configuration files based on requirement.

The ease of installation and the time taken to seamlessly install or upgrade a system plays a vital role in a cloud-scale network. An installation process that is time-consuming and complex affects the resiliency and scale of the network. The GISO simplifies the installation process, automates the installation workflow, and manages the dependencies in RPMs and SMUs automatically.

GISO is built using a build script gisobuild.py available on the github location Github location.

When a system boots with GISO, additional SMUs and RPMs in GISO are installed automatically, and the router is pre-configured with the XR configuration in GISO. For more information about downloading and installing GISO, see Install Golden ISO.

The capabilities of GISO can be used in the following scenarios:

  • Initial deployment of the router

  • Software disaster recovery

  • System upgrade from one base version to another

  • System upgrade from same base version but with additional SMUs

  • Install update to identify and update dependant packages

Limitations

The following are the known problems and limitations with the customized ISO:

  • Building and booting GISO for asynchronous package (a package of different release than the ISO) is not supported.

  • Verifying the XR configuration is not supported in the GISO build script gisobuild.py.

  • Renaming a GISO build and then installing from the renamed GISO build is not supported.

  • Install operation over IPv6 is not supported.

Customize Installation using Golden ISO

Golden ISO (GISO) is a customized ISO that a user can build to suit the installation requirement. The user can customize the installable image to include the standard base image with the basic functional components, and add additional RPMs, SMUs and configuration files based on requirement.

The ease of installation and the time taken to seamlessly install or upgrade a system plays a vital role in a cloud-scale network. An installation process that is time-consuming and complex affects the resiliency and scale of the network. The GISO simplifies the installation process, automates the installation workflow, and manages the dependencies in RPMs and SMUs automatically.

GISO is built using a build script gisobuild.py available on the github location Github location.

When a system boots with GISO, additional SMUs and RPMs in GISO are installed automatically, and the router is pre-configured with the XR configuration in GISO. For more information about downloading and installing GISO, see Install Golden ISO.

The capabilities of GISO can be used in the following scenarios:

  • Initial deployment of the router

  • Software disaster recovery

  • System upgrade from one base version to another

  • System upgrade from same base version but with additional SMUs

  • Install update to identify and update dependant packages

Limitations

The following are the known problems and limitations with the customized ISO:

  • Building and booting GISO for asynchronous package (a package of different release than the ISO) is not supported.

  • Verifying the XR configuration is not supported in the GISO build script gisobuild.py.

  • Renaming a GISO build and then installing from the renamed GISO build is not supported.

  • Install operation over IPv6 is not supported.

Golden ISO Workflow

The following image shows the workflow for building and installing golden ISO.

Figure 1. Golden ISO Workflow

The image shows a workflow of how you can build and install a Golden ISO

Build Golden ISO

The customized ISO is built using Cisco Golden ISO (GISO) build script gisobuild.py available on the Github location.

The GISO build script supports automatic dependency management, and provides these functionalities:
  • Builds RPM database of all the packages present in package repository.

  • Scans the repositories and selects the relevant Cisco RPMs that matches the input iso.

  • Skips and removes third-party RPMs that are not SMUs of already existing third-party base package in mini-x.iso.

  • Displays an error and exits build process if there are multiple base RPMs of same release but different versions.

  • Performs compatibility check and dependency check for all the RPMs. For example, the child RPM ncs5000-mpls-te-rsvp is dependent on the parent RPM ncs5000-mpls . If only the child RPM is included, the Golden ISO build fails.

Install Golden ISO

Golden ISO (GISO) automatically performs the following actions:

  • Installs host and system admin RPMs.

  • Partitions repository and TFTP boot on RP.

  • Creates software profile in system admin and XR modes.

  • Installs XR RPMs. Use show install active command to see the list of RPMs.

  • Applies XR configuration. Use show running-config command in XR mode to verify.

Procedure


Step 1

Download GISO image to the router using one of the following options:

  • PXE boot: when the router is booted, the boot mode is identified. After detecting PXE as boot mode, all available ethernet interfaces are brought up, and DHClient is run on each interface. DHClient script parses HTTP or TFTP protocol, and GISO is downloaded to the box.
  • System Upgrade: when the system is upgraded, GISO can be installed using install add , install activate , or using install replace commands.

    Important

     

    To replace the current version and packages on the router with the version from GISO, note the change in command and format.

    • In versions prior to Cisco IOS XR Release 6.3.3, 6.4.x and 6.5.1, use the install update command:
      install update source <source path> <Golden-ISO-name> replace
    • In Cisco IOS XR Release 6.5.2 and later, use the install replace command.
      install replace <absolute-path-of-Golden-ISO>

    Note

     

    To create a Bootable External USB Disk, do the following:

    • Ensure that the USB Boot Disk has a minimum storage of 8GB, and that you have root/admin or appropriate permission to create bootable disk on linux machine.

    1. Copy and execute usb-install script on the Linux machine to create a bootable external USB.

      
      Router#admin
      
      Router#./linux/misc/scripts/create_usb_zip ncs5500 ncs5500-goldenk9-x.iso-7.5.01.v1
        adding: EFI/ (stored 0%)
        adding: EFI/boot/ (stored 0%)
        adding: EFI/boot/grub.cfg (deflated 66%)
        adding: EFI/boot/bootx64.efi (deflated 67%)
        adding: boot/ (stored 0%)
        adding: boot/install-image.iso (deflated 1%)
      Zip file created - usb_boot.zip
      Router# ls -ltr usb_boot.zip
      -rw-r--r-- 1 user eng 1448680576 Sep 14 04:13 usb_boot.zip
      Router#
      
    2. Reset the RSP/RP and plug in bootable USB to RSP/RP's front panel. The USB will get detected in ROMMON. Note that when the system is in ROMMON, and if you add a front panel external USB, the USB will not be detected until the RSP/RP is reset.

    The options to upgrade the system are as follows:

    • system upgrade from a non-GISO (image that does not support GISO) to GISO image: If a system is running a version1 with an image that does not support GISO, the system cannot be upgraded directly to version2 of an image that supports GISO. Instead, the version1 must be upgraded to version2 mini ISO, and then to version2 GISO.

    • system upgrade in a release from version1 GISO to version2 GISO: If both the GISO images have the same base version but different labels, install add and install activate commands does not support same version of two images. Instead, using install source command installs only the delta RPMs. System reload is based on restart type of the delta RPMs.

      Using install replace command performs a system reload, irrespective of the difference between ISO and the existing version.

      Router#install replace <path-to-image> <platform-name-golden-x-<version>-<label>.iso
      Install operation 1 started by root:
      exec-timeout is suspended.
      No install operation in progress at this moment
      Label = <label-name>
      ISO <platform-name-golden-x-<version>.iso in input package list. Going to upgrade the system to version 6.5.2.
      
      Current label: <None>
      
      Updating contents of golden ISO
      Scheme : localdisk
      Hostname : localhost
      Username : None
      SourceDir : /ws
      
      Collecting software state..
      
      Getting platform
      Getting supported architecture
      Getting active packages from XR
      Getting inactive packages from XR
      Getting list of RPMs in local repo
      Getting list of provides of all active packages
      Getting provides of each rpm in repo
      Getting requires of each rpm in repo
      Fetching .... <platform-name-golden-x-<version>.iso
      
      Label within GISO: <label-name>
      
      Adding packages
              <platform-name-golden-x-<version>.iso
      
      UTC: sdr_instmgr[1150]: %INSTALL-INSTMGR-2-OPERATION_SUCCESS : Install operation 2 finished successfully
      
      Install add operation successful
      
      Activating <platform-name-golden-x-<version>
      
      Install operation 3 started by root:
        install activate pkg <platform-name-golden-x-<version>-<label> replace 
      
      Package list:
           <platform-name-golden-x-<version>-<label>
      
      This install operation will reload the system, continue?
      
       [yes/no]:[yes] Install operation will continue in the background
      
      exec-timeout is resumed.
      
      Router# Install operation 3 finished successfully
      %INSTALL-INSTMGR-2-OPERATION_SUCCESS : Install operation 3 finished successfully
      sdr_instmgr[1150]: %INSTALL-INSTMGR-2-SYSTEM_RELOAD_INFO : The whole system will be reloaded to complete install operation 3
      
    • system upgrade across releases from version1 GISO to version2 GISO: Both the GISO images have different base versions. Use install add and install activate commands, or install replace command to perform the system upgrade. The router reloads after the upgrade with the version2 GISO image.

Step 2

Run the show install repository all command in System Admin mode to view the RPMs and base ISO for host, system admin and XR.

sysadmin-vm:0_RP0#show install repository all
Admin repository
---------------------
ncs5000-sysadmin-6.2.2
ncs5000-sysadmin-hostos-6.2.2-r622.CSCcv10001.admin.x86_64
ncs5000-sysadmin-hostos-6.2.2-r622.CSCcv10001.admin.arm
ncs5000-sysadmin-system-6.2.2-r622.CSCcv10005.x86_64
ncs5000-sysadmin-system-6.2.2-r622.CSCcv10005.arm
....
XR repository
------------------
ncs5000-iosxr-mgbl-3.0.0.0-r622.x86_64
ncs5000-xr-6.2.2
....
Host repository
---------------------
host-6.2.2

Step 3

Run the show install package <golden-iso> command to display the list of RPMs, and packages built in GISO.

Note

 
To list RPMs in the GISO, the GISO must be present in the install repository.
Router#show install package ncs5000-goldenk9-x64-6.2.2

This may take a while ...
    ISO Name: ncs5000-goldenk9-x64-6.2.2
    ISO Type: bundle
    ISO Bundled: ncs5000-mini-x64-6.2.2
    Golden ISO Label: temp
    ISO Contents:
        ISO Name: ncs5000-xr-6.2.2
        ISO Type: xr
        rpms in xr ISO:
            iosxr-os-ncs5000-64-5.0.0.0-r622
            iosxr-ce-ncs5000-64-3.0.0.0-r622
            iosxr-infra-ncs5000-64-4.0.0.0-r622
            iosxr-fwding-ncs5000-64-4.0.0.0-r622
            iosxr-routing-ncs5000-64-3.1.0.0-r6122

        ISO Name: ncs5000-sysadmin-6.2.2
        ISO Type: sysadmin
        rpms in sysadmin ISO:
            ncs5000-sysadmin-topo-6.2.2-r622
            ncs5000-sysadmin-shared-6.2.2-r622
            ncs5000-sysadmin-system-6.2.2-r622
            ncs5000-sysadmin-hostos-6.2.2-r622.admin
        ...
            
        ISO Name: host-6.2.2
        ISO Type: host
        rpms in host ISO:
            ncs5000-sysadmin-hostos-6.2.2-r622.host

        Golden ISO Rpms:
            xr rpms in golden ISO:
                ncs5000-k9sec-x64-2.2.0.1-r622.CSCxr33333.x86_64.rpm
                openssh-scp-6.6p1.p1-r0.0.CSCtp12345.xr.x86_64.rpm
                openssh-scp-6.6p1-r0.0.xr.x86_64.rpm
                ncs5000-mpls-x64-2.1.0.0-r622.x86_64.rpm
                ncs5000-k9sec-x64-2.2.0.0-r622.x86_64.rpm

            sysadmin rpms in golden ISO:
                ncs5000-sysadmin-system-6.2.2-r622.CSCcv11111.x86_64.rpm
                ncs5000-sysadmin-system-6.2.2-r622.CSCcv11111.arm.rpm
                openssh-scp-6.6p1-r0.0.admin.x86_64.rpm
                openssh-scp-6.6p1-r0.0.admin.arm.rpm
                openssh-scp-6.6p1.p1-r0.0.CSCtp12345.admin.x86_64.rpm
                openssh-scp-6.6p1.p1-r0.0.CSCtp12345.admin.arm.rpm
                ncs5000-sysadmin-hostos-6.2.2-r622.CSCcv10001.admin.x86_64.rpm
                ncs5000-sysadmin-hostos-6.2.2-r622.CSCcv10001.admin.arm.rpm

            host rpms in golden ISO:
                openssh-scp-6.6p1-r0.0.host.x86_64.rpm
                openssh-scp-6.6p1-r0.0.host.arm.rpm
                openssh-scp-6.6p1.p1-r0.0.CSCtp12345.host.x86_64.rpm
                openssh-scp-6.6p1.p1-r0.0.CSCtp12345.host.arm.rpm

The ISO, SMUs and packages in GISO are installed on the router.