目录

简介

先决条件

要求

使用的组件

相关产品

适用于XR升级的金牌ISO

gisobuild Python工具

准备

GISO创建

验证

简介

本文档介绍如何创建金牌ISO (GISO)，以便在运行eXR版本的Cisco IOS® XR软件的路由器中进行升级。

先决条件

要求

Cisco 建议您了解以下主题：

- Cisco IOS XR 软件

- Cisco IOS XR软件安装和升级程序

- Linux基本命令和命令行导航

使用的组件

本文档不限于特定硬件版本，本文档适用于运行IOS XR 64位的所有路由器。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

相关产品

本文档还可用于以下硬件版本：

- Cisco 9000 系列路由器

- Cisco 8000 系列路由器

- 思科NCS 5700系列路由器

- 思科NCS 5500系列路由器

- NCS 540和560路由器

适用于XR升级的金牌ISO

通常，思科会将IOS-XR软件作为微型/基本ISO发布，其中包含给定平台的强制IOS-XR软件包、用于运行附加功能的一组可选软件包以及用于以软件维护升级(SMU)形式进行的任何Bug修复的软件补丁。可选封装和SMU采用RPM封装格式。

金牌ISO工具会创建一个ISO，其中包含微型/基本ISO的全部内容，以及用户选择的可选软件包和SMU。创建金牌ISO后，即可将其用于iPXE引导，或用于SU（系统升级），从当前运行的版本升级至新版本的IOS-XR。

注意：创建Golden ISO时，必须使用Mini/base ISO

gisobuild Python工具

此工具可在Linux主机上本地运行。或者，该工具也可以在启用Docker的Linux系统上运行，并能够从Docker Hub提取已发布的“cisco-xr-gisobuild”映像，例如建议在Debian 11.8中使用该示例

此工具具有下一个可执行文件要求：

- python3 >= 3.6

- rpm >= 4.14

- cpio >= 2.10

- gzip >= 1.9

- createrepo_c

- 文件

- isoinfo

- mkisofs

- mksquashfs

- openssl

- unsquashfs

- 7z（可选-但功能可以减少，无需任何配置）

- iso-read（可选-但可以缩减功能而无需）

- zip（可选-但可以缩减功能而无需）

- 解压缩（可选-但功能可以减少，无需压缩）

注意：在并非满足所有依赖项的本地Linux系统上，可以通过运行下一个命令（可能通过sudo）在受支持的分发上安装工具依赖项：./setup/prep_dependency.sh

它还需要下一代Python (>= 3.6)模块：

- 数据类

- defusedxml

- distutils

- 包装

- rpm

- yaml

为了在Linux主机上本地运行，已对下一个发行版进行了测试，特别是针对此场景Debian。

- Alma Linux 8

- 费多拉34

- 德比安11.2

准备

必须首先确认需要哪些可选软件包及其原因。在安装过程中，安装不必要或过多的软件包可能会导致磁盘空间使用问题和故障。在创建GISO之前，确认每个平台的必备条件和磁盘空间要求。

要下载必要的软件，请查阅官方软件下载站点：Cisco软件下载

脚本可以帮助我们统一各种文件，例如iso、网桥修复、SMU等。

需要将gisobuild.py脚本复制到服务器上的特定位置。脚本位于gisobuild Git Site

GISO创建

以下是可用于此脚本用法的参数摘要：

usage: gisobuild.py [-h] [--iso ISO] [--repo REPO [REPO ...]]

[--bridging-fixes BRIDGE_FIXES [BRIDGE_FIXES ...]]

[--xrconfig XRCONFIG] [--ztp-ini ZTP_INI] [--label LABEL]

[--no-label] [--out-directory OUT_DIRECTORY]

[--create-checksum] [--yamlfile CLI_YAML] [--clean]

[--pkglist PKGLIST [PKGLIST ...]] [--script SCRIPT]

[--docker] [--x86-only] [--migration] [--optimize]

[--full-iso]

[--remove-packages REMOVE_PACKAGES [REMOVE_PACKAGES ...]]

[--skip-usb-image] [--copy-dir COPY_DIRECTORY]

[--clear-bridging-fixes] [--verbose-dep-check] [--debug]

[--isoinfo ISOINFO] [--image-script IMAGE_SCRIPT]

[--version]

在本例中，创建了适用于ASR 9901的GISO，ISIS和OSPF软件包用于简洁，mini用于7.9.21版本，配置文件也添加到GISO。

如下一命令所示，packages、mini和config文件被复制到/src目录中，以创建脚本运行命令的清除版本。

root@debian:/gisobuild-master/src# ls

asr9k-9000v-nV-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-mcast-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-bng-ipoe-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-mgbl-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-bng-pppoe-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-mini-x64-7.9.21.iso

asr9k-bng-supp-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-mpls-te-rsvp-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-bng-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-mpls-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-optic-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-eigrp-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-ospf-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-isis-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-services-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-li-x64-1.0.0.0-r7921.x86_64.rpm

asr9k-m2m-x64-1.0.0.0-r7921.x86_64.rpm

lnt

lntmod

output_gisobuild

utils

validate

wrappers

exrmod

running-config-ASR9K

gisobuild.py

--------GISO CREATION--------

root@debian:/gisobuild-master/src# ./gisobuild.py --iso asr9k-mini-x64-7.9.21.iso --pkglist asr9k-isis-x64-1.0.0.0-r7921.x86_64.rpm asr9k-ospf-x64-1.0.0.0-r7921.x86_64.rpm --xrconfig running-config-ASR9K --label firstGiso --skip-usb-image --clean

System requirements check [PASS]

Platform: asr9k Version: 7.9.21

XR-Config file (/gisobuild-master/src/running-config-ASR9K) will be encapsulated in Golden ISO.

Warning: No RPMS or Optional Matching 7.9.21 packages found in repository

Building Golden ISO...

Summary .....

XR Config file:

router.cfg

...Golden ISO creation SUCCESS.

Golden ISO Image Location: /gisobuild-master/src/output_gisobuild/asr9k-golden-x64-7.9.21-firstGiso.iso

Creating USB Boot zip...

Skipping USB Boot Zip creation: Not supported for platform: asr9k

USB BOOT ZIP NEEDED?: Contact asr9k team to add support.

root@debian:/gisobuild-master/src#

以下是用于创建此GISO的参数的简要说明：

—iso ISO

Mini.iso/Full.iso文件的路径

—xrconfig XRCONFIG

XR配置文件的路径

—label标签，-l标签

金牌ISO标签

-clean

在继续之前删除输出目录

—skip-image

不构建USB映像（ASR9K平台不支持）

验证

如安装日志所述，我们可以通过查看位置来确认我们的GISO创建，例如本例。金牌ISO映像位置：/gisobuild-master/src/output_gisobuild/asr9k-golden-x64-7.9.21-firstGiso.iso

根据下一个映像，initrd.img 为1.7GB，其中包含我们随附的安装包。

德边GUI中的GISO