Introdução
Este documento descreve a criação do Golden ISO (GISO) para atualizações em roteadores que executam o software Cisco IOS® XR em versões eXR.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Cisco IOS XR Software
- Procedimentos de instalação e atualização do software Cisco IOS XR
- Comandos básicos do Linux e navegação na linha de comando
Componentes Utilizados
Este documento não está restrito a versões de hardware específicas, este documento aplica-se a todos os roteadores que executam IOS XR de 64 bits.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Produtos Relacionados
Este documento também pode ser usado com estas versões de hardware:
- Cisco 9000 Series Routers
- Cisco 8000 Series Routers
- Roteadores Cisco NCS 5700 Series
- Roteadores Cisco NCS 5500 Series
- Roteadores NCS 540 e 560
ISO dourado para atualizações XR
Normalmente, a Cisco lança o software IOS-XR como um mini/base ISO que contém pacotes IOS-XR obrigatórios para uma determinada plataforma, um conjunto de pacotes opcionais para executar recursos adicionais e patches de software para quaisquer correções de bugs na forma de atualização de manutenção de software (SMU). O pacote opcional e o SMU estão no formato de pacote RPM.
A ferramenta Golden ISO cria um ISO que contém o conteúdo completo do mini/base ISO junto com pacotes opcionais e SMU da escolha do usuário. Uma vez que o ISO dourado é criado, ele pode ser usado para inicialização iPXE ou usado para SU (atualização do sistema) da versão atual em execução para uma nova versão do IOS-XR.
Nota: Mini/base ISO é obrigatório para qualquer criação de Golden ISO
Ferramenta Python gisobuild
Essa ferramenta pode ser executada nativamente em um host Linux. Alternativamente, a ferramenta também pode ser executada em um sistema Linux com o Docker habilitado e a capacidade de extrair a imagem publicada 'cisco-xr-gisobuild' do Docker Hub, para este exemplo é sugerido trabalhar no Debian 11.8
Esta ferramenta tem os seguintes requisitos executáveis:
- python3 >= 3,6
- rpm >= 4,14
- cpio >= 2,10
- gzip >= 1,9
- createrepo_c
- arquivo
- isoinfo
- mkisofs
- mksquashfs
- openssl
- unsquashfs
- 7z (Opcional - mas a funcionalidade pode ser reduzida sem)
- iso-read (Opcional - mas a funcionalidade pode ser reduzida sem)
- zip (Opcional - mas a funcionalidade pode ser reduzida sem)
- unzip (Opcional - mas a funcionalidade pode ser reduzida sem)
Observação: em um sistema Linux nativo, que não possui todas as dependências atendidas, as dependências da ferramenta podem ser instaladas em distribuições suportadas executando o próximo comando (possivelmente via sudo): ./setup/prep_dependency.sh
Também requer os próximos módulos Python (>= 3.6):
- classes de dados
- defusedxml
- distutils
- empacotamento
- rpm
- yaml
Para rodar nativamente em um host Linux, as próximas distribuições foram testadas, especificamente para este cenário, Debian.
- Linux Alma 8
- Fedora 34
- Debian 11.2
Preparação
É essencial confirmar primeiro quais pacotes opcionais são necessários e por quê. A instalação de pacotes desnecessários ou excessivos pode produzir problemas e falhas de utilização de espaço em disco durante a instalação. Confirme os pré-requisitos e requisitos de cada plataforma para o espaço em disco antes da criação do GISO.
Para fazer o download do software necessário, consulte o site de Download de Software Oficial: Download de Software da Cisco
O script pode nos ajudar a unificar uma grande variedade de arquivos, por exemplo, iso, correções de bridge, SMUs e assim por diante.
É necessário para copiar o script gisobuild.py para um local específico no servidor. O script está localizado no site Gisobuild Git
Criação de GISO
Aqui está um resumo dos argumentos que podemos usar para este uso de script:
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]
Para este exemplo, é criado um GISO para ASR 9901, os pacotes ISIS e OSPF são usados para abreviar, mini para a versão 7.9.21 e o arquivo de configuração também é adicionado ao GISO.
Como é visível no próximo comando, os pacotes, mini e arquivo de configuração são copiados no diretório /src, isso para criar uma versão limpa do comando de execução de script.
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#
Aqui está uma breve descrição dos parâmetros usados para esta criação de GISO:
— iso ISO |
Caminho para o arquivo Mini.iso/Full.iso |
— xrconfig XRCONFIG |
Caminho para o arquivo de configuração XR |
— label RÓTULO, - l RÓTULO |
Etiqueta ISO dourada |
--clean |
Excluir diretório de saída antes de continuar |
— skip- image |
Não criar a imagem USB (não compatível com a plataforma ASR9K) |
Verificar
Como os registros de instalação mencionam, podemos confirmar nossa criação de GISO revisando o local, neste exemplo. Local da imagem ISO dourada: /gisobuild-master/src/output_gisobuild/asr9k-golden-x64-7.9.21-firstGiso.iso
De acordo com a próxima imagem, initrd.img é de 1,7 GB contendo os pacotes de instalação que incluímos.
GISO na GUI Debian