...
- Open ticket/set ticket to "in progress"
- Verify in lab and document expected downtimes
- Upgrade isolated building/location first, wait 1 day
- Upgrade first half/partition of network
- Upgrade second half/partition of network
- Check monitoring
- Update/close ticket
Replace access switch:
- Save any special interface configs:
curl -ks -H "Authorization: Bearer $JWT_AUTH_TOKEN" ${CNAASURL}/api/v1.0/device/
eosaccesscurrentswitch/interfaces > migrate-received.json
- Remove device from databaseNMS (use factory default if the switch is still online to clear the config)
- ZTP new switch (with same name)
- Re-apply any interface configs ( , download migrate-interfaces.py ( compatible with nms v1.x to convert output json to input json , then curl ks )
python3 migrate-interfaces.py < migrate-received.json > migrate-send.json
curl ks -H "Authorization: Bearer $JWT_AUTH_TOKEN" ${CNAASURL}/api/v1.0/device/
newswitch/interfaces -X PUT -d
migrate-send.
json -H "Content-Type: application/json"
- Sync config to switch
- Update serial etc in NI?
- Update monitoring etc if management IP changed
Replace access switch that is part of MLAG pair:
- Same as access, save interface configs and remove device.
- To be able to ZTP new device: set downlink on connected dist to redundant_link: false and sync it, shut down MLAG peer interfaces on the working switch, then do ZTP of new switch with same name as replaced switch
- Import interfaces from step 1 (same as access switch)
- Manually add back linknets between existing MLAG switch and new MLAG switch via API POST to /linknets with JSON payload:
{"device_a": "a3", "device_b": "a4", "device_a_port": "Ethernet25", "device_b_port": "Ethernet51"}
- Sync the working MLAG peer switch, it should re-enable MLAG peer interfaces that was shutdown previously
- Sync the newly provisioned MLAG switch, it should add the mlag configuration
- Remove redundant_link: false from connected dist switch again (from step 2)
- Sync uplink dist switches
Replace dist switch (in core/dist configuration) via ZTP:
- Update mgmtdomain so it does not reference the switch you want to replace, instead set both device_a_id and device_b_id to the id of the device in the pair that you are not going to replace: curl ks -H "Authorization: Bearer $JWT_AUTH_TOKEN" ${CNAASURL}/api/v1.0/mgmtdomain/1 -X PUT -d '{"device_b_id": 8}'
- Delete the switch you want to replace with the API, factory_reset: false since it's not supported on DIST devices.
- Re-sync all core switches so they remove linknet config and add ZTP vlans
- Physically replace the switch and wait for the new switch to show up in DISCOVERED state
- Init the switch with the exact same hostname (so that git settings will be applied)
- Update the mgmtdomain so it references both switches in the pair again (revert of step 1)
- Update serial etc in NI?
- Update monitoring etc if management IP changed
Replace switch via console-paste:
- Power on replacement-switch in lab-rack or similar with console access
- Connect via console and do "zerotouch cancel" if needed
- Copy configuration from old switch from NMS WebUI Devices → Click on device → Actions menu → Copy generated config
- Paste config to replacement switch, if it already has some previous config do configure session → rollback clean-config before pasting new config (paste with delay between lines or paste in chunks if configuration is not applied correctly)
- wr config
- Physically replace switch
- Sync device from NMS WebUI
- Update facts from NMS WebUI, update serial in NI etc