Upgrading Cisco C9800 using RESTCONF
- #wireless
- Last updated on
This is going to be a short post highlighting the steps required to upgrade a Cisco C9800 controller. The procedure could also work with another IOS-XE device.
Tools used
- YangModel for the IOS-XE image install.
- Pyang with the XPath plugin
- Postman
- C9800-CL with RESTCONF enabled.
I’m assuming that your device is UP and running RESTCONF, otherwise please refer to the following Cisco Deployment link.
Cisco-IOS-XE-install-rpc: this is the module that allows the user to make software upgrade operations.
Three Steps Upgrade
We followed the CLI three steps software upgrade in the Cisco configuration guide.
To make this post short, I will use the CLI command
show install summary
on each step displaying the expected output.
- Install add
Postman POST
https://<IP:Port>/restconf/operations/Cisco-IOS-XE-install-rpc:install
Postman body
{
"install": [
{
"uuid": "test",
"one-shot": false,
"path": "bootflash:C9800-CL-universalk9.17.06.04.SPA.bin"}
]
}
- Verify
CLI
9800#show install summary
[ Chassis 1/R0 ] Installed Package(s) Information:
State (St): I - Inactive, U - Activated & Uncommitted,
C - Activated & Committed, D - Deactivated & Uncommitted
--------------------------------------------------------------------------------
Type St Filename/Version
--------------------------------------------------------------------------------
IMG C 17.06.02.0.2786
IMG I 17.06.04.0.4912
--------------------------------------------------------------------------------
Auto abort timer: inactive
--------------------------------------------------------------------------------
- Install Activate
Postman POST
https://<IP:Port>/restconf/operations/Cisco-IOS-XE-install-rpc:install
Postman body
{
"activate": [
{
"uuid": "test",
"version": 17.06.04.0.4912
}
]
}
- Verify
CLI
9800#show install summary
[ Chassis 1/R0 ] Installed Package(s) Information:
State (St): I - Inactive, U - Activated & Uncommitted,
C - Activated & Committed, D - Deactivated & Uncommitted
--------------------------------------------------------------------------------
Type St Filename/Version
--------------------------------------------------------------------------------
IMG U 17.06.04.0.4912
--------------------------------------------------------------------------------
Auto abort timer: active , time before rollback - 05:53:02
--------------------------------------------------------------------------------
- Install Commit
Postman POST
https://<IP:Port>/restconf/operations/Cisco-IOS-XE-install-rpc:install
Postman body
{
"install-commit": [
{
"uuid": "test"
}
]
}
- Verify
CLI
9800#show install summary
[ Chassis 1/R0 ] Installed Package(s) Information:
State (St): I - Inactive, U - Activated & Uncommitted,
C - Activated & Committed, D - Deactivated & Uncommitted
--------------------------------------------------------------------------------
Type St Filename/Version
--------------------------------------------------------------------------------
IMG C 17.06.04.0.4912
--------------------------------------------------------------------------------
Auto abort timer: inactive
--------------------------------------------------------------------------------
That’s All Folks!