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
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:
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#