表 3. 機能の履歴(表)
機能名
|
リリース情報
|
説明
|
強化されたゴールデン ISO ビルドツール
|
リリース 7.5.1
|
この拡張機能により、gisobuild.py ツールを使用して、カスタマイズされたインストール要件に合わせて Cisco IOS XR ソフトウェアコマンド、YAML ベースのテンプレートファイル、または Docker 機能を使用して GISO イメージを柔軟に構築できます。GISO を作成する場合は、基本イメージとオプションの
RPM を使用してルータを自動的にプロビジョニングすることに加えて、ゼロタッチプロビジョニング(ZTP)初期化ファイル、スクリプト初期化ファイル、Cisco IOS XR 構成ファイル、および SMU の指定もできます。
|
GISO を作成するには、スクリプトに次の入力パラメータを指定します。
-
基本 mini-x.iso(必須)
-
XR コンフィギュレーション ファイル(任意)
-
ホスト、XR、およびシステム管理用の 1 つまたは複数のシスコ固有の SMU(任意)
-
ホスト、XR、およびシステム管理用の 1 つまたは複数のサードパーティ製 SMU(任意)
-
ゴールデン ISO のラベル(任意)
-
オプションの RPM
-
ZTP 初期化 ztp.ini
ファイル(任意)
-
スクリプト初期化 script.ini
ファイル(任意)
GISO スクリプトは XR 設定の検証をサポートしていません。
(注)
|
k9sec RPM を GISO に適切に追加するには、chmod コマンドを使用してファイルの権限を 644 に変更します。 chmod 644 [k9 sec rpm]
|
Cisco IOS XR リリース 7.5.1 では、gisobuild.py
GISO ビルドツールの拡張機能が導入されています。ztp.ini
ZTP 初期化ファイルと script.ini
スクリプト初期化ファイルも追加できます。ZTP 設定は、現在のソフトウェアバージョンが GISO イメージを使用するバージョンに置き換えられたとき、またはロールバックされたときにルータに適用され、ルータを自動的にプロビジョニングするために ZTP
が実行されるたびに使用されます。このビルドツールでは複数のリポジトリがサポートされています。CLI コマンド、Docker、または YAML ファイルを使用して GISO を構築できます。
(注)
|
-
Cisco ASR 9000 シリーズ ルータの IOS XR 32 ビットソフトウェアから IOS XR 64 ビットソフトウェアに移行する場合は、[migration] オプションを [true] に設定します。
-
最初の GISO を作成後に同じビルドディレクトリを使用する場合は、[clean] オプションを [true] に設定します。
後続のすべての GISO ビルドでオプションを [true] に設定していることを確認します。
-
Docker を使用して GISO を構築する場合は、[docker] オプションを [true] に設定します。
-
GISO 構築時のエラーを回避するために、YAML ファイルの形式と構文が変更されていないことを確認します。たとえば、: 記号が欠落している場合、またはサポートされていない記号がテンプレートで使用されている場合、GISO の構築時にエラーが表示されます。
|
gisobuild.py
ツールはネイティブに実行できます。また、Docker サービスが有効になっていて、公開された Docker イメージをプルできるシステムで実行できます。追加の権限は不要なため、Docker を使用してイメージを構築することを推奨します。
(注)
|
[full-iso] オプションは、Cisco IOS XRv 9000 ルータに固有の完全な ISO イメージ xrv9k-full-x-7.5.1.iso を作成するために使用されます。 Cisco IOS XR リリース 7.8.1 以降では、GISO の構築には完全な ISO イメージを使用できません。
|
GISO を作成するには、次の手順を実行します。
例:Docker ベースの GISO イメージの構築
この例では、GISO イメージは Docker を使用して構築されます。 [root@xr src]# ./gisobuild.py --docker --iso /auto/ncs5500giso/ncs5500-mini-x-7.5.1.iso
--repo /auto/ncs5500giso --pkglist ncs5500-bgp-2.0.0.0-r751.x86_64.rpm
ncs5500-eigrp-1.0.0.0-r751.x86_64.rpm ncs5500-isis-2.1.0.0-r751.x86_64.rpm ncs5500-k9sec-3.1.0.0-r751.x86_64.rpm
ncs5500-li-1.0.0.0-r751.x86_64.rpm ncs5500-mcast-3.0.0.0-r751.x86_64.rpm ncs5500-mgbl-3.0.0.0-r751.x86_64.rpm
ncs5500-mpls-2.1.0.0-r751.x86_64.rpm ncs5500-mpls-te-rsvp-3.1.0.0-r751.x86_64.rpm ncs5500-ospf-2.0.0.0-r751.x86_64.rpm
ncs5500-parser-2.0.0.0-r751.x86_64.rpm --label dockerbasedgiso
Local System requirements check [PASS]
Pulling gisobuild image from hub. Please wait...
\
Done...
System requirements check [PASS]
Platform: ncs5500 Version: 7.5.1
Scanning repository [/auto/ncs5500giso]...
Building RPM Database...
Total 11 RPM(s) present in the repository path provided in CLI
[ 1] ncs5500-mpls-2.1.0.0-r751.x86_64.rpm
[ 2] ncs5500-mgbl-3.0.0.0-r751.x86_64.rpm
[ 3] ncs5500-bgp-2.0.0.0-r751.x86_64.rpm
[ 4] ncs5500-parser-2.0.0.0-r751.x86_64.rpm
[ 5] ncs5500-isis-2.1.0.0-r751.x86_64.rpm
[ 6] ncs5500-mcast-3.0.0.0-r751.x86_64.rpm
[ 7] ncs5500-mpls-te-rsvp-3.1.0.0-r751.x86_64.rpm
[ 8] ncs5500-ospf-2.0.0.0-r751.x86_64.rpm
[ 9] ncs5500-li-1.0.0.0-r751.x86_64.rpm
[10] ncs5500-eigrp-1.0.0.0-r751.x86_64.rpm
[11] ncs5500-k9sec-3.1.0.0-r751.x86_64.rpm
Following XR x86_64 rpm(s) will be used for building Golden ISO:
(+) ncs5500-ospf-2.0.0.0-r751.x86_64.rpm
(+) ncs5500-bgp-2.0.0.0-r751.x86_64.rpm
(+) ncs5500-parser-2.0.0.0-r751.x86_64.rpm
(+) ncs5500-mcast-3.0.0.0-r751.x86_64.rpm
(+) ncs5500-li-1.0.0.0-r751.x86_64.rpm
(+) ncs5500-eigrp-1.0.0.0-r751.x86_64.rpm
(+) ncs5500-mgbl-3.0.0.0-r751.x86_64.rpm
(+) ncs5500-mpls-2.1.0.0-r751.x86_64.rpm
(+) ncs5500-mpls-te-rsvp-3.1.0.0-r751.x86_64.rpm
(+) ncs5500-isis-2.1.0.0-r751.x86_64.rpm
(+) ncs5500-k9sec-3.1.0.0-r751.x86_64.rpm
...RPM signature check [PASS]
Skipping following rpms from repository since they are already present in base ISO:
(-) ncs5500-parser-2.0.0.0-r751.x86_64.rpm
(-) ncs5500-bgp-2.0.0.0-r751.x86_64.rpm
...RPM compatibility check [PASS]
Building Golden ISO...
Summary .....
XR rpms:
ncs5500-mcast-3.0.0.0-r751.x86_64.rpm
ncs5500-mgbl-3.0.0.0-r751.x86_64.rpm
ncs5500-isis-2.1.0.0-r751.x86_64.rpm
ncs5500-mpls-te-rsvp-3.1.0.0-r751.x86_64.rpm
ncs5500-eigrp-1.0.0.0-r751.x86_64.rpm
ncs5500-mpls-2.1.0.0-r751.x86_64.rpm
ncs5500-ospf-2.0.0.0-r751.x86_64.rpm
ncs5500-li-1.0.0.0-r751.x86_64.rpm
ncs5500-k9sec-3.1.0.0-r751.x86_64.rpm
...Golden ISO creation SUCCESS.
Golden ISO Image Location: /var/tmp/giso/gisobuild-toolkit-master/src/output_gisobuild/
ncs5500-golden-x-7.5.1-dockerbasedgiso.iso
[root@xr src]# ./gisobuild.py --docker --iso /auto/asr9kgiso/asr9k-mini-x-7.5.1.iso
--repo /auto/asr9kgiso --pkglist asr9k-7.5.1.CSCsb88888 asr9k-bgp-2.0.0.0-r751.x86_64.rpm
asr9k-eigrp-1.0.0.0-r751.x86_64.rpm asr9k-isis-2.1.0.0-r751.x86_64.rpm asr9k-k9sec-3.1.0.0-r751.x86_64.rpm
asr9k-li-1.0.0.0-r751.x86_64.rpm asr9k-mcast-3.0.0.0-r751.x86_64.rpm asr9k-mgbl-3.0.0.0-r751.x86_64.rpm
asr9k-mpls-2.1.0.0-r751.x86_64.rpm asr9k-mpls-te-rsvp-3.1.0.0-r751.x86_64.rpm asr9k-ospf-2.0.0.0-r751.x86_64.rpm
asr9k-parser-2.0.0.0-r751.x86_64.rpm --label dockerbasedgiso
Local System requirements check [PASS]
Pulling gisobuild image from hub. Please wait...
\
Done...
System requirements check [PASS]
Platform: asr9000 Version: 7.5.1
Scanning repository [/auto/asr9000giso]...
Building RPM Database...
Total 11 RPM(s) present in the repository path provided in CLI
[ 1] asr9k-mpls-2.1.0.0-r751.x86_64.rpm
[ 2] asr9k-mgbl-3.0.0.0-r751.x86_64.rpm
[ 3] asr9k-bgp-2.0.0.0-r751.x86_64.rpm
[ 4] asr9k-parser-2.0.0.0-r751.x86_64.rpm
[ 5] asr9k-isis-2.1.0.0-r751.x86_64.rpm
[ 6] asr9k-mcast-3.0.0.0-r751.x86_64.rpm
[ 7] asr9k-mpls-te-rsvp-3.1.0.0-r751.x86_64.rpm
[ 8] asr9k-ospf-2.0.0.0-r751.x86_64.rpm
[ 9] asr9k-li-1.0.0.0-r751.x86_64.rpm
[10] asr9k-eigrp-1.0.0.0-r751.x86_64.rpm
[11] asr9k-k9sec-3.1.0.0-r751.x86_64.rpm
Following XR x86_64 rpm(s) will be used for building Golden ISO:
(+) asr9k-ospf-2.0.0.0-r751.x86_64.rpm
(+) asr9k-bgp-2.0.0.0-r751.x86_64.rpm
(+) asr9k-parser-2.0.0.0-r751.x86_64.rpm
(+) asr9k-mcast-3.0.0.0-r751.x86_64.rpm
(+) asr9k-li-1.0.0.0-r751.x86_64.rpm
(+) asr9k-eigrp-1.0.0.0-r751.x86_64.rpm
(+) asr9k-mgbl-3.0.0.0-r751.x86_64.rpm
(+) asr9k-mpls-2.1.0.0-r75114I.x86_64.rpm
(+) asr9k-mpls-te-rsvp-3.1.0.0-r751.x86_64.rpm
(+) asr9k-isis-2.1.0.0-r751.x86_64.rpm
(+) asr9k-k9sec-3.1.0.0-r751.x86_64.rpm
...RPM signature check [PASS]
Skipping following rpms from repository since they are already present in base ISO:
(-) asr9k-parser-2.0.0.0-r751.x86_64.rpm
(-) asr9k-bgp-2.0.0.0-r751.x86_64.rpm
...RPM compatibility check [PASS]
Building Golden ISO...
Summary .....
XR rpms:
asr9k-mcast-3.0.0.0-r751.x86_64.rpm
asr9k-mgbl-3.0.0.0-r751.x86_64.rpm
asr9k-isis-2.1.0.0-r751.x86_64.rpm
asr9k-mpls-te-rsvp-3.1.0.0-r751.x86_64.rpm
asr9k-eigrp-1.0.0.0-r751.x86_64.rpm
asr9k-mpls-2.1.0.0-r751.x86_64.rpm
asr9k-ospf-2.0.0.0-r751.x86_64.rpm
asr9k-li-1.0.0.0-r751.x86_64.rpm
asr9k-k9sec-3.1.0.0-r751.x86_64.rpm
...Golden ISO creation SUCCESS.
Golden ISO Image Location: /var/tmp/giso/gisobuild-toolkit-master/src/output_gisobuild/
asr9k-golden-x-7.5.1-dockerbasedgiso.iso
GISO ファイルが正常に作成されたことを確認します。[root@xr src]# ls
exrmod gisobuild.py lntmod output_gisobuild utils
[root@xr src]# cd output_gisobuild/
[root@xr output_gisobuild]# ls
img_built_name.txt logs ncs5500asr9k-golden-x-7.5.1-dockerbasedgiso.iso
rpms_packaged_in_giso.txt
例:YAML ベースの GISO イメージの構築
YAML は、パッケージリストを提供し、ビルドオプションを管理するためのテンプレートとして機能するマークアップファイルです。
次に、サンプルの YAML テンプレートの例を示します。# Options below correspond to the tool input options.
# --iso ISO Path to Mini.iso/golden.iso file
# --repo REPO [REPO ...]
# Path to list of RPM repositories. RPMs are only used if already
# included in the ISO, or specified by the user via the --pkglist option.
# --pkglist PKGLIST [PKGLIST ...]
# Optional list of rpm or smu to add to the ISO.
# --remove-packages REMOVE_PACKAGES [REMOVE_PACKAGES ...]
# Remove named RPMs, specified in a space separated list. Valid build
# option for LNT only. eXR builds simply ignores this option.
# --bridging-fixes BRIDGE_FIXES [BRIDGE_FIXES ...]
# Bridging rpms to package. Takes from-release (supported for eXR)
# or rpm names.
# --xrconfig XRCONFIG Path to XR config file
# --ztp-ini ZTP_INI Path to user ztp ini file
# --script SCRIPT Path to user executable script executed as part of
# bootup post activate. Valid build option for eXR only.
# LNT builds simply ignores.
# --label LABEL Golden ISO Label
# --out-directory OUT_DIRECTORY
# Output Directory. Built GISO and logs will be available post gisobuild.
# --copy-directory COPY_DIRECTORY
# Copy built artefacts to specified directory if provided. Valid build
# option for LNT only. eXR build ignores this option.
# --yamlfile CLI_YAML Cli arguments via yaml.
# --clean Delete output dir before proceeding.
# --migration To build Migration tar only for ASR9k. Valid build option for eXR only.
# LNT builds simply ignore this option.
# --docker Load and run pre-built docker image. Valid build option for eXR only.
# LNT builds simply ignore this option.
# --x86-only Use only x86_64 rpms even if other architectures are applicable. Valid build
# option for eXR only. LNT builds simply ignore this option.
# --version Print version of this script and exit
packages:
iso: <path-to-iso>
repo:
- <path-to-repo1>
- <path-to-repo2>
pkglist:
- <pkg1>
- <pkg2>
bridge-fixes:
upgrade-from-release:
- <dotted-release-1>
- <dotted-release-2>
rpms:
- <pkg1>
- <pkg2>
remove_packages:
- <pkg1>
- <pkg2>
user-content:
script: <path-to-script-sh>
xrconfig: <path-to-router.cfg>
ztp-ini: <path-to-ztp.ini>
output:
label: <giso-label>
out-directory: <path-to-output-directory>
clean: <true/false>
options:
docker: <true/false>
migration: <true/false>
x86-only: <true/false>
この例では、必要なファイルを指定して YAML ファイルを設定します。 packages:
iso: /auto/751_repo/ncs5500-mini-x-7.5.1.iso
repo:
- /auto/751_repo/
pkglist:
- ncs5500-bgp-2.0.0.0-r751.x86_64.rpm
- ncs5500-eigrp-1.0.0.0-r751.x86_64.rpm
- ncs5500-isis-2.1.0.0-r751.x86_64.rpm
- ncs5500-li-1.0.0.0-r751.x86_64.rpm
- ncs5500-mcast-3.0.0.0-r751.x86_64.rpm
- ncs5500-mgbl-3.0.0.0-r751.x86_64.rpm
- ncs5500-mpls-2.1.0.0-r751.x86_64.rpm
- ncs5500-mpls-te-rsvp-3.1.0.0-r751.x86_64.rpm
- ncs5500-ospf-2.0.0.0-r751.x86_64.rpm
- ncs5500-parser-2.0.0.0-r751.x86_64.rpm
- ncs5500-k9sec-3.1.0.0-r751.x86_64.rpm
- ncs5500-mcast-3.0.0.1-r751.CSCxr33333.x86_64.rpm
- ncs5500-os-5.0.0.1-r751.CSCxr11111.x86_64.rpm
- ncs5500-sysadmin-hostos-7.5.1-r751.CSCho99999.admin.x86_64.rpm
- ncs5500-sysadmin-hostos-7.5.1-r751.CSCho99999.host.x86_64.rpm
- ncs5500-sysadmin-topo-7.5.1-r751.CSCcv55555.x86_64.rpm
- ncs5500-sysadmin-system-7.5.1-r751.CSCcv44444.x86_64.rpm
- openssh-scp-6.6p1.p1-r0.5.0.r751.CSCtp11111.xr.x86_64.rpm
- cisco-klm-zermatt-0.1.p1-r0.0.r751.CSCtp11111.xr.x86_64.rpm
remove_rpms: []
user-content:
script: script.sh
xrconfig: /auto/751_repo/gisoxrconfig.cfg
ztp-ini: /auto/751_repo/ztp.ini
output:
label: 751_yaml_install
out-directory: /auto/751_repo/
clean: true
options:
docker: false
full-iso: false
migration: false
x86-only: false
packages:
iso: /auto/751_repo/asr9k-mini-x-7.5.1.iso
repo:
- /auto/751_repo/
pkglist:
- asr9k-bgp-2.0.0.0-r751.x86_64.rpm
- asr9k-eigrp-1.0.0.0-r751.x86_64.rpm
- asr9k-isis-2.1.0.0-r751.x86_64.rpm
- asr9k-li-1.0.0.0-r751.x86_64.rpm
- asr9k-mcast-3.0.0.0-r751.x86_64.rpm
- asr9k-mgbl-3.0.0.0-r751.x86_64.rpm
- asr9k-mpls-2.1.0.0-r751.x86_64.rpm
- asr9k-mpls-te-rsvp-3.1.0.0-r751.x86_64.rpm
- asr9k-ospf-2.0.0.0-r751.x86_64.rpm
- asr9k-parser-2.0.0.0-r751.x86_64.rpm
- asr9k-k9sec-3.1.0.0-r751.x86_64.rpm
- asr9k-mcast-3.0.0.1-r751.CSCxr33333.x86_64.rpm
- asr9k-os-5.0.0.1-r751.CSCxr11111.x86_64.rpm
- asr9k-sysadmin-hostos-7.5.1-r751.CSCho99999.admin.x86_64.rpm
- asr9k-sysadmin-hostos-7.5.1-r751.CSCho99999.host.x86_64.rpm
- asr9k-sysadmin-topo-7.5.1-r751.CSCcv55555.x86_64.rpm
- asr9k-sysadmin-system-7.5.1-r751.CSCcv44444.x86_64.rpm
- openssh-scp-6.6p1.p1-r0.5.0.r751.CSCtp11111.xr.x86_64.rpm
- cisco-klm-zermatt-0.1.p1-r0.0.r751.CSCtp11111.xr.x86_64.rpm
remove_rpms: []
user-content:
script: script.sh
xrconfig: /auto/751_repo/gisoxrconfig.cfg
ztp-ini: /auto/751_repo/ztp.ini
output:
label: 751_yaml_install
out-directory: /auto/751_repo/
clean: true
options:
docker: false
full-iso: false
migration: false
x86-only: false
CLI を使用してパッケージとパラメータのリストを指定しない場合は、YAML ファイルテンプレートを使用できます。 [directory-path]$ ./src/gisobuild.py --yamlfile <input-yaml-cfg>
YAML 構成ファイルの入力をオーバーライドするには、対応する CLI オプションを使用します。[directory-path]$ ./src/gisobuild.py --yamlfile <input-yaml-cfg> --label <new-label>
この新しいラベルで、YAML ファイルで指定されたラベルがオーバーライドされます。
ホストマシンでパッケージの依存関係が満たされていないが、Docker イメージのプルと実行が許可されている場合は、YAML ファイルの [docker] オプションを [true] に設定して、次のコマンドを実行します。
[directory-path]$ ./src/gisobuild.py --yamlfile <input-yaml-cfg>
ここで、input-yaml-cfg
の [docker] オプションは [true] に設定されています。
ルータに GISO イメージをインストールします。