Upgrade Method
Cisco 8000升级方式和其他XR产品类似可大致分为三类:
- USB re-image
- PXE re-image
- Install command (本文log一下用install command 升级的过程)
准备工作
下载安装包,以及optional RPM包。并copy到设备主引擎harddisk: 中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | RP /0/RP0/CPU0 :ios #dir harddisk: Wed Jan 20 06:45:46.006 UTC Directory of harddisk: 15 -rw-r--r--. 1 737280 Jan 20 06:44 8000-optional-rpms.7.0.14. tar <<<< 524289 drwxrwxrwx. 2 4096 Jan 20 05:00 dumper 13 -rw-r--r--. 1 987228160 Jan 20 05:53 8000-x64-7.0.14.iso <<< 14 -rw-r--r--. 1 1003520 Jan 20 06:44 8000-k9sec-rpms.7.0.14. tar <<<< 3407873 drwxr-xr-x. 2 4096 Jan 20 05:00 showtech 11 drwx------. 2 16384 Jan 20 04:49 lost+found 1310721 drwx------. 3 4096 Jan 20 04:58 ima 3670017 drwxrwxrwx. 5 4096 Jan 20 05:25 cisco_support 655361 drwxr-xr-x. 3 4096 Jan 20 05:00 pam 2883585 drwxrwxrwx. 2 4096 Jan 20 04:54 shutdown 12 -rw-rw-rw-. 1 31 Jan 20 04:54 debug_shell_client.log 262145 drwxrwxrwx. 2 4096 Jan 20 04:55 .sppdc 3932161 drwxrwxrwx. 2 4096 Jan 20 04:54 nvram |
如上所示, ISO包中已经包含了一些基础的功能包,如BGP ISIS OSPF, 还有些存在于 optional 的tar包中。
Install Replace(iso) ******
Command
1 2 3 4 5 6 7 8 9 10 11 12 | #install package replace harddisk:/8000-x64-7.0.14.iso synchronous or #install replace harddisk:/8000-x64-7.0.14.iso synchronous //install package replace VS install replace install replace 在安装完ISO文件后直接重启完成更新, 好处就是不用输入“ install apply”让设备重启了, 但是这样做你就无法安装其他功能包, 只能在重启后继续安装功能包,另外 install replace 命令多用于用gISO升级, 因为在制作gISO的时候会将所有的rpm压进去, install replace 直接升级重启设备就行。 RP /0/RP1/CPU0 :8808 # install replace /harddisk:/8000-x64-7.0.14.iso synchron$ Wed Jan 20 03:58:26.400 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 replace' command instead, followed by 'install apply' . Continue? [ yes /no ]:[ yes ] no |
LOG
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | RP /0/RP0/CPU0 :ios #show platform Wed Jan 20 06:23:35.956 UTC Node Type State Config state -------------------------------------------------------------------------------- 0 /RP0/CPU0 8201-SYS(Active) IOS XR RUN NSHUT 0 /RP0/BMC0 8201-SYS OPERATIONAL NSHUT 0 /PM0 PSU2KW-ACPE OPERATIONAL NSHUT 0 /PM1 PSU2KW-ACPE OPERATIONAL NSHUT 0 /FT0 FAN-1RU-PE OPERATIONAL NSHUT 0 /FT1 FAN-1RU-PE OPERATIONAL NSHUT 0 /FT2 FAN-1RU-PE OPERATIONAL NSHUT 0 /FT3 FAN-1RU-PE OPERATIONAL NSHUT 0 /FT4 FAN-1RU-PE OPERATIONAL NSHUT RP /0/RP0/CPU0 :ios #show install active summary Wed Jan 20 06:23:38.941 UTC Active Packages: XR: 171 All: 1188 Label: 7.0.12 Software Hash: 38bad736984debbde3000e25d64c8071 Optional Packages Version ---------------------------------------------------- --------------------------- xr-8000-mcast 7.0.12v1.0.0-1 xr-8000-netflow 7.0.12v1.0.0-1 xr-bgp 7.0.12v1.0.0-1 xr-cdp 7.0.12v1.0.0-1 xr-eigrp 7.0.12v1.0.0-1 xr-healthcheck 7.0.12v1.0.0-1 xr-ipsla 7.0.12v1.0.0-1 xr-is-is 7.0.12v1.0.0-1 xr-lldp 7.0.12v1.0.0-1 xr-mcast 7.0.12v1.0.0-1 xr-mpls-oam 7.0.12v1.0.0-1 xr-netflow 7.0.12v1.0.0-1 xr-ospf 7.0.12v1.0.0-1 xr-perfmgmt 7.0.12v1.0.0-1 xr-rip 7.0.12v1.0.0-1 xr-telnet 7.0.12v1.0.0-1 xr-track 7.0.12v1.0.0-1 RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios #install package re remove replace RP /0/RP0/CPU0 :ios #install package replace harddisk:/8000-x64-7.0.14.iso synchronous Wed Jan 20 06:24:03.218 UTC Starting: install package replace /harddisk : /8000-x64-7 .0.14.iso Packaging operation 1.1.1 The install operation will continue in the background 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 replace /harddisk:/8000-x64-7.0.14.iso' completed without error Exception in thread Thread-1: Traceback (most recent call last): File "tools/python3/shared/obj-x86_64-thinxr/python_tree/cpython/Lib/threading.py" , line 914, in _bootstrap_inner File "tools/python3/shared/obj-x86_64-thinxr/python_tree/cpython/Lib/threading.py" , line 862, in run File "infra/install/src/_xrinstall/_inotify.py" , line 197, in _wait_for_subproc File "infra/install/src/_xrinstall/_inotify.py" , line 267, in stop File "infra/install/src/_xrinstall/_inotify.py" , line 207, in _kill_proc AttributeError: 'NoneType' object has no attribute 'terminate' RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios #show install request Wed Jan 20 06:36:09.506 UTC User request: install package replace /harddisk : /8000-x64-7 .0.14.iso Operation ID: 1.1.1 State: Success since 2021-01-20 06:35:42 UTC Current activity: Await user input Time started: 2021-01-20 06:35:42 The following actions are available: install package add install package remove install package upgrade install package downgrade install package replace install package rollback install package abort latest install package abort all-since-apply install apply reload |
Install add option rpm packet ******
安装optional的rpm包的时候有三种方法:
- On Box Directory(使用本地路径的方式)
- Local Repository
- Remote Repository
On Box Directory
1 | RP /0/RP0/CPU0 :P1 #install source /harddisk:/TELNET xr-telnet-7.0.1.131Sv1.0.0-1.x86_64.rpm |
Remote Repository
这里以centos为例子, 创建一个remote repo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //Centos [root@xuxing239 ~] # yum -y install httpd createrepo [root@xuxing239 ~] # systemctl start httpd [root@xuxing239 ~] # createrepo --database /var/www/html/ Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete [root@xuxing239 ~] # // 将你的rpm包解压缩后放到路径: /var/www/html/ 下 //Cisco 8000 remove repo 配置: RP /0/RP0/CPU0 :ios #show run install install repository REPO url http: //6 .2.41.10 |
Local repository ****
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | RP /0/RP0/CPU0 :ios #run Wed Jan 20 06:45:58.984 UTC [node0_RP0_CPU0:~]$ cd /harddisk \: [node0_RP0_CPU0: /harddisk :]$ mkdir repo [node0_RP0_CPU0: /harddisk :]$ [node0_RP0_CPU0: /harddisk :]$ [node0_RP0_CPU0: /harddisk :]$ mv 8000-optional-rpms.7.0.14. tar repo/ [node0_RP0_CPU0: /harddisk :]$ mv 8000-k9sec-rpms.7.0.14. tar repo/ [node0_RP0_CPU0: /harddisk :]$ [node0_RP0_CPU0: /harddisk :]$ [node0_RP0_CPU0: /harddisk :]$ cd repo/ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ ls 8000-k9sec-rpms.7.0.14. tar 8000-optional-rpms.7.0.14. tar [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ tar -xvf 8000-k9sec-rpms.7.0.14. tar optional-rpms /k9sec/ optional-rpms /k9sec/xr-k9sec-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /k9sec/xr-k9sec-7dee261fe41a15d8-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /k9sec/xr-k9sec-8201-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /k9sec/xr-k9sec-8202-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /k9sec/xr-k9sec-8800-lc-36fh-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /k9sec/xr-k9sec-8800-lc-48h-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /k9sec/xr-k9sec-8800-rp-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /k9sec/xr-k9sec-c1d82c6c34a39c33-7 .0.14v1.0.0-1.x86_64.rpm [node0_RP0_CPU0: /harddisk : /repo ]$ tar -xvf 8000-optional-rpms.7.0.14. tar optional-rpms /cdp/ optional-rpms /cdp/xr-cdp-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /cdp/xr-cdp-7dee261fe41a15d8-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /cdp/xr-cdp-8201-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /cdp/xr-cdp-8202-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /cdp/xr-cdp-8800-lc-36fh-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /cdp/xr-cdp-8800-lc-48h-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /cdp/xr-cdp-8800-rp-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /cdp/xr-cdp-c1d82c6c34a39c33-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /cdp/xr-cdp-fbaabb7554875ebc-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /healthcheck/ optional-rpms /healthcheck/xr-healthcheck-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /healthcheck/xr-healthcheck-7dee261fe41a15d8-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /healthcheck/xr-healthcheck-8201-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /healthcheck/xr-healthcheck-8202-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /healthcheck/xr-healthcheck-8800-lc-36fh-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /healthcheck/xr-healthcheck-8800-lc-48h-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /healthcheck/xr-healthcheck-8800-rp-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /healthcheck/xr-healthcheck-c1d82c6c34a39c33-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /telnet/ optional-rpms /telnet/xr-telnet-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /telnet/xr-telnet-7dee261fe41a15d8-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /telnet/xr-telnet-8201-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /telnet/xr-telnet-8202-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /telnet/xr-telnet-8800-lc-36fh-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /telnet/xr-telnet-8800-lc-48h-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /telnet/xr-telnet-8800-rp-7 .0.14v1.0.0-1.x86_64.rpm optional-rpms /telnet/xr-telnet-c1d82c6c34a39c33-7 .0.14v1.0.0-1.x86_64.rpm [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ ls 8000-k9sec-rpms.7.0.14. tar 8000-optional-rpms.7.0.14. tar optional-rpms [node0_RP0_CPU0: /harddisk : /repo ]$ rm -rf 8000-k9sec-rpms.7.0.14. tar [node0_RP0_CPU0: /harddisk : /repo ]$ rm -rf 8000-optional-rpms.7.0.14. tar [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ [node0_RP0_CPU0: /harddisk : /repo ]$ exit logout RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios #conf Wed Jan 20 06:48:17.088 UTC RP /0/RP0/CPU0 :ios(config) #install RP /0/RP0/CPU0 :ios(config- install ) # repository local-repo RP /0/RP0/CPU0 :ios(config-repository) # url file:///harddisk:/repo RP /0/RP0/CPU0 :ios(config-repository) # ! RP /0/RP0/CPU0 :ios(config-repository) # RP /0/RP0/CPU0 :ios(config-repository) # RP /0/RP0/CPU0 :ios(config-repository) #commit Wed Jan 20 06:48:20.909 UTC RP /0/RP0/CPU0 :ios(config-repository) # RP /0/RP0/CPU0 :ios #show install available | in local-repo <<<< check repo packet Wed Jan 20 06:49:47.431 UTC xr-cdp x86_64 7.0.14v1.0.0-1 local -repo xr-healthcheck x86_64 7.0.14v1.0.0-1 local -repo xr-k9sec x86_64 7.0.14v1.0.0-1 local -repo xr-telnet x86_64 7.0.14v1.0.0-1 local -repo RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios #install package add xr-cdp xr-healthcheck xr-k9sec xr-telnet synchronous Wed Jan 20 06:50:12.608 UTC Starting: install package add xr-cdp xr-healthcheck xr-k9sec xr-telnet Packaging operation 1.1.2 The install operation will continue in the background 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.2: 'install package add xr-cdp xr-healthcheck xr-k9sec xr-telnet' completed without error |
Install apply | install commit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | RP /0/RP0/CPU0 :ios #install apply reload Wed Jan 20 06:51:47.581 UTC This install operation will reload the system. Continue? [ yes /no ]:[ yes ] yes Install apply operation has started Install operation will continue in the background RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios # RP /0/RP0/CPU0 :ios #RP/0/RP0/CPU0:Jan 20 06:52:03.782 UTC: instorch[153]: %INFRA-INSTALL-2-SYSTEM_RELOAD : As part of an install operation, a full system reload will take place in order to apply the installed software. Preparing system for backup. This may take a few minutes especially for large configurations. Status report: node0_RP0_CPU0: BACKUP INPROGRESS Status report: node0_RP0_CPU0: BACKUP HAS COMPLETED SUCCESSFULLY [Done] // 重启结束后 install commit |
参考
Software Installation Guide for Cisco 8000 Series Routers, IOS XR Release 7.0.x
Cisco_8000_Series_Upgrade_MOP_7014.pdf
The blog from link: http://imxing.cn/wp-trackback.php?p=983