Contents

Introduction

Prerequisites

Requirements

Components Used

Related Products

IOS XR7 installation enhancement.

Configure

Remote Repository

Configure the remote repository in the router.

Install operation

Make Configuration Effective.

Install commit

Local Repository

Prerequisites

Configuring Local Repository

Install Operation

Make Configuration Effective and Install Commit

Introduction

This document describes upgrades of Cisco IOS® XR 7 software versions and install operations using a repository.

Prerequisites

Requirements

Cisco recommends that you have knowledge of these topics:

- Cisco IOS XR software

- Cisco IOS XR software installation and upgrade procedures

Components Used

This document is not restricted to specific hardware versions, this document apply for all routers running IOS XR7.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.

Related Products

IOS XR7, also referred as Lindt, is an evolution of the XR software is build on top of a Linux 9 distribution.

One major change is the complete removal of the admin plane. In addition, IOS XR control plane processes now run natively on the host.

This document is currently applicable to the next hardware devices:

- Cisco 540 Routers

- 8000 Series Routers

- Cisco NCS 57B1 Series Routers

Note: A software release can contain the number 7 but still represents eXR software architecture (e.g ASR 9000 XR 7.5.2 release is not XR7 architecture)

IOS XR7 installation enhancement.

To install packages (RPM), code upgrades, and updates in XR7, you need a repository of RPMs for the router to download the RPMs for installation. The repository can be local to the router, or accessed remotely through FTP, HTTP, or HTTPS.

We have a set of commands that can help us in different scenarios and need in all the installation activities in XR7.

install replace

Upgrade to a new release

install source

Install bug fix RPMs between releases and optional packages

install commit

Commit changes to persist over reload

show install active

View active packages

show install committed

View committed packages

show install request

View state of install operation

show version

View state of current install version

The currently active software can be replaced on your system with the software from a specified ISO image or Golden ISO (GISO) image. Only a minimal set of changes is required to upgrade to the new software. Packages are not removed and reinstalled if they have the same name and version.

- Create a repository to access files :

RP/0/RP0/CPU0:R0(config)# install repository local-repo | remote-repo

- Upgrade the version:

RP/0/RP0/CPU0:R0(config)# install package replace

- Make configuration effective:

RP/0/RP0/CPU0:R0# install apply {reload | restart} [noprompt]

- Commit (make persistent the installation):

RP/0/RP0/CPU0:R0# install commit

Configure

This section describes and shows how to configure a repository in the router, HTTP/FTP server is suggested to be already created and functional.

Remote Repository

When the repository is accessed remotely, you must provide a repository URL from where the install files are fetched. The URL contains:

- IP address of the server

- Port number of the server

- (Optional) Virtual Routing and Forwarding (VRF) name

The repository can be configured to be reachable using a non-default VRF table. If the repository is reachable through an address in a VRF, specify the name of the VRF.

The format of the repository URL is one of the following:

- FTP: ftp://<server>[;<vrf>]/<path-to-repository>

- HTTP: http://<server>[;<vrf>]/<path-to-repository>

- HTTPS: https://<server>[;<vrf>]/<path-to-repository>

- Local: file:///<path-to-repository>. The path to the repository must be under /harddisk:/ location.

Configure the remote repository in the router.

RP/0/RP0/CPU0:R0# configure

RP/0/RP0/CPU0:R0(config)# install repository remote_repo url http://192.168.122.1/

RP/0/RP0/CPU0:R0(config)# commit

RP/0/RP0/CPU0:R0(config)# end

RP/0/RP0/CPU0:R0#

As mentioned early, is imperative to provide a repository URL from where the install files are fetched.

- Validate fixes available in our remote repository or any repository we had configured previously.

RP/0/RP0/CPU0:R0#sh install fixes available

Wed Jan 31 22:32:39.477 UTC

Trying to access repositories...

Available Fixes (count: 1):

Bug Id      Packages                                                    Repository                               Cached

----------- ----------------------------------------------------------- ---------------------------------------- ------

CSCvz57398        xr-ospf-7.3.2v1.0.1-1                                       remote_repo

Install operation

RP/0/RP0/CPU0:R0#install package upgrade xr-ospf-7.3.2v1.0.1-1 synchronous

Wed Jan 31 22:34:16.220 UTC

Starting:

install package upgrade xr-ospf-7.3.2v1.0.1-1

Packaging operation 1.1.1

Press Ctrl-C to return to the exec prompt. This will not cancel the install operation

Current activity: Initializing ...

Current activity: Veto check ..

Current activity: Package add or other package operation ..

Packaging operation 1.1.1: 'install package upgrade xr-ospf-7.3.2v1.0.1-1' completed without error

Remote repository can show some logs of the router requesting for some files. In this case HTTP server is showing some HTTP successful requests.

HTTP Server Logs of Success Requests

Make Configuration Effective.

RP/0/RP0/CPU0:R0#sh install fixes active

Wed Jan 31 22:39:54.987 UTC

There are currently no fixes active.

RP/0/RP0/CPU0:R0#install apply

Wed Jan 31 22:40:16.628 UTC

Once the packaging dependencies have been determined, the install operation may have to reload the system.

If you want more control of the operation, then explicitly use 'install apply restart' or 'install apply reload' as reported by 'show install request'.

Continue? [yes/no]:[yes] yes

Install apply operation 1.1 has started

Install operation will continue in the background

With show install request command, progress of the installation can be monitored. The second time the command was ran, the install request is already completed.

RP/0/RP0/CPU0:R0#sh install request

Wed Jan 31 22:41:07.649 UTC

User request: install apply restart

Operation ID: 1.1

State: In progress since 2024-01-31 22:40:19 UTC

Current activity: Apply by restarting processes

Next activity: Await user input

Time started: 2024-01-31 22:40:19

No per-location information.

RP/0/RP0/CPU0:R0#sh install request

Wed Jan 31 22:43:51.577 UTC

User request: install apply restart

Operation ID: 1.1

State: Success since 2024-01-31 22:41:10 UTC <<<<

Current activity: Await user input

Time started: 2024-01-31 22:41:10

At this point fix is active but not persistent.

RP/0/RP0/CPU0:R0#sh install fixes active

Wed Jan 31 22:46:33.940 UTC

Active Fixes (count: 1):

Bug Id      Packages

----------- -----------------------------------------------------------

CSCvz57398        xr-ospf-7.3.2v1.0.1-1

Install commit

At this point, after committing the installation and receive 0 errors, installation is concluded.

RP/0/RP0/CPU0:R0#install commit synchronous

Wed Jan 31 22:47:38.676 UTC

Starting:

install commit

Transaction 1

Press Ctrl-C to return to the exec prompt. This will not cancel the install operation

Current activity: Initializing

Current activity: Commit transaction .

Transaction 1: 'install commit' completed without error

RP/0/RP0/CPU0:R0#

Local Repository

The router can serve as repository to host the RPMs. You must be a root-lr user with access to the router shell. Remote repository is the recommended method to access the RPMs. However, if remote repository is not your preferred option, then you can use the router as a repository to host the RPMs.

Local repository method is almost the same as the remote repository, however it has slight differences at the beginning.

Prerequisites

Packages needs to be in the harddisk in order to add them to our repository.

For example, the next TAR file:

RP/0/RP0/CPU0:R0#dir harddisk:

Wed Jan 31 23:07:15.476 UTC

Directory of harddisk:

12 -rw-rw-rw-. 1 8388681 Jan 31 22:55 nvgen_bkup.log

2097153 drwxrwxrwx. 2    4096 Jan 31 22:19 .sppdc

524289 drwxrwxrwx. 3    4096 Oct 18  2021 mirror

2228225 drwxrwxrwx. 2    4096 Oct 18  2021 .sppdc_new

3932161 drwxrwxrwx. 3    4096 Oct 18  2021 ztp

3276801 drwxr-xr-x. 3    4096 Jun 16  2022 pam

13 -rw-rw-rw-. 1     600 Jan 31 22:18 debug_shell_client.log

3407873 drwxrwxrwx. 2    4096 Oct 18  2021 shutdown

1835009 drwxrwxrwx. 2    4096 Oct 18  2021 nvram

14 -rw-r--r--. 1  911360 Jan 31 23:06 8000-optional-rpms.7.3.2.tar  <<<<<<<

262145 drwxr-xr-x. 2    4096 Jun 16  2022 showtech

11 drwx------. 2   16384 Oct 18  2021 lost+found

655361 drwx------. 3    4096 Jan 31 22:20 ima

15 -rw-rw-rw-. 1       2 Jan 31 22:25 feature_list

786433 drwxrwxrwx. 2    4096 Jun 16  2022 dumper

1048577 drwxrwxrwx. 5    4096 Jan 31 22:24 cisco_support

3145729 drwxrwxrwx. 2    4096 Jan 31 22:18 npu_sdk_logs

65908476 kbytes total (62474792 kbytes free)

RP/0/RP0/CPU0:R0#

It is recommended to untar the file in the shell of the router.

RP/0/RP0/CPU0:R0#run

Wed Jan 31 23:08:20.380 UTC

[node0_RP0_CPU0:/]$cd harddisk\:

[node0_RP0_CPU0:/harddisk:]$tar -xvf 8000-optional-rpms.7.3.2.tar

Configuring Local Repository

RP/0/RP0/CPU0:R0# configure

RP/0/RP0/CPU0:R0(config)# install repository local-repo url file:///harddisk:/optional-rpms

RP/0/RP0/CPU0:R0(config)# commit

RP/0/RP0/CPU0:R0(config)# end

RP/0/RP0/CPU0:R0#

Validate the packages that were added to the local repository

RP/0/RP0/CPU0:R0#sh install available

Wed Jan 31 23:14:52.788 UTC

Trying to access repositories...

Package                                              Architecture                         Version Repository                          Cached

---------------------------------------------------- ---------------- --------------------------- ----------------------------------- ------

xr-cdp                                               x86_64                         7.3.2v1.0.0-1 local-repo

xr-healthcheck                                       x86_64                         7.3.2v1.0.0-1 local-repo

xr-telnet                                            x86_64                         7.3.2v1.0.0-1 local-repo

RP/0/RP0/CPU0:R0#

Install Operation

In order to install and verify at this moment is the very same process as in the remote repository option, we can try to install any of these packages, for example telnet one.

RP/0/RP0/CPU0:R0#install source local-repo xr-telnet

Wed Jan 31 23:20:28.252 UTC

Once the packaging dependencies have been determined, the install operation may have to reload the system.

If you want to control the timing of system reload, you must not continue, but use the 'install package add' command instead, followed by 'install apply'.

Continue? [yes/no]:[yes] yes

Install source operation 3.1 has started

Install operation will continue in the background

RP/0/RP0/CPU0:R0#sh install request

Wed Jan 31 23:24:45.907 UTC

User request: install source local-repo xr-telnet

Operation ID: 3.1

State:        Success since 2024-01-31 23:22:58 UTC

Make Configuration Effective and Install Commit

Same as in the remote method we need to run the install apply  to make configuration effective and install commit  to make persistent the installation. Use the next command to verify the correct installation of packages

RP/0/RP0/CPU0:R0#sh install committed summary

Wed Jan 31 23:28:15.923 UTC

Committed Packages: XR: 181    All: 1283

Label:              7.3.2

Software Hash:      bfe1bf8477ebb422e0eaf5c23358fcb1

Optional Packages                                                        Version

---------------------------------------------------- ---------------------------

xr-8000-mcast                                                      7.3.2v1.0.0-1

xr-8000-netflow                                                    7.3.2v1.0.0-1

xr-bgp                                                             7.3.2v1.0.0-1

xr-ipsla                                                           7.3.2v1.0.0-1

xr-is-is                                                           7.3.2v1.0.0-1

xr-lldp                                                            7.3.2v1.0.0-1

xr-mcast                                                           7.3.2v1.0.0-1

xr-mpls-oam                                                        7.3.2v1.0.0-1

xr-netflow                                                         7.3.2v1.0.0-1

xr-ospf                                                            7.3.2v1.0.0-1

xr-perfmgmt                                                        7.3.2v1.0.0-1

xr-telnet                                                          7.3.2v1.0.0-1  <<<<<<

xr-track                                                           7.3.2v1.0.0-1

RP/0/RP0/CPU0:R0#