NSO
出自 qingwei personal wiki
docker run
1 sudo docker run --publish 8083:8080 -itd dockerhub.cisco.com/robot-docker-v2/robot-cfgsvc
常用命令
1 # 进入docker
2 docker exec -it $(docker ps | grep cfg | head -n1 | awk {'print $1'}) bash
3
4 # 进入CLI
5 bash-4.2# ncs_cli -u admin -C
traces
1 bash-4.2# ncs_cli -u admin
2 admin@ncs> configure
3 admin@ncs% set devices global-settings trace raw
4 # 保存位置
5 /var/log/robot/ncs-logs/xxx.trace
手動添加一個device
ncs_cli -u admin
configure
set devices authgroups group lab default-map
set devices authgroups group lab default-map remote-name admin
set devices authgroups group lab default-map remote-password lab
set devices device E09 address 20.6.6.2
set devices device E09 port 22
set devices device E09 authgroup lab
set devices device E09 device-type cli
set devices device E09 device-type cli ned-id cisco-ios
set devices device E09 state admin-state unlocked
commit
request devices device E09 sync-from
rollback 配置
cd ncs-run/
vi ncs.conf
<rollback>
<enabled>true</enabled>
<directory>/var/log/robot/ncs-logs</directory>
<history-size>500</history-size>
</rollback>
重啟NSO
bash-4.2# pwd
/mnt/datafs/ncs-run
bash-4.2# cd ncs-run/
bash-4.2# ls
README.ncs ncs-cdb ncs.conf ncs.conf.bak packages scripts state target
bash-4.2# ncs --stop
bash-4.2# ncs
看log
bash-4.2# pwd
/var/log/robot/ncs-logs
tail -f /var/log/robot/ncs-logs/ncs-java-vm.log
sync from
# bash 下sync-from
bash-4.2# curl -i -u admin:admin -X POST http://127.0.0.1:8080/api/running/devices/device/f0bf1cdf-bee1-3525-817c-b593fcb8c8bb/_operations/sync-from
CURD配置
curl 命令讀配置
# 读的是集合
curl -i -u admin:admin -H "Accept:application/vnd.yang.collection+json" -s http://127.0.0.1:8080/api/config/devices/device/f0bf1cdf-bee1-3525-817c-b593fcb8c8bb/config/ios:cable/virtual-service-group
# 读 RPD
curl -i -u admin:admin -H "Accept:application/vnd.yang.data+xml" -s http://127.0.0.1:8080/api/config/devices/device/f0bf1cdf-bee1-3525-817c-b593fcb8c8bb/config/ios:cable/rpd/node0955?deep
curl 命令刪配置
# key用 , 隔开
curl -i -u admin:admin -X "DELETE" http://127.0.0.1:8080/api/config/devices/device/f0bf1cdf-bee1-3525-817c-b593fcb8c8bb/config/ios:ip/route/ip-route-forwarding-list/60.10.13.61,255.255.255.255,100.1.1.0
show 命令讀配置
# 从NSO上读配置
admin@ncs# show running-config devices device f0bf1cdf-bee1-3525-817c-b593fcb8c8bb config ios:cable virtual-service-group
devices device f0bf1cdf-bee1-3525-817c-b593fcb8c8bb
config
ios:cable virtual-service-group sg-6-0-3 downstream-cable 6/0/2 profile 68
ios:cable virtual-service-group sg-7-0-2-d downstream-cable 7/0/2 profile 67
ios:cable virtual-service-group sg-7-0-8 downstream-cable 7/0/8 profile 68
ios:cable virtual-service-group test_sg downstream-cable 7/0/5 profile 67
ios:cable virtual-service-group video-service-group downstream-cable 7/0/1 profile 68
!
!
debug手段
Unknown SSH host key
1 admin@ncs# devices device f0bf1cdf-bee1-3525-817c-b593fcb8c8bb sync-from
2 result false
3 info Failed to authenticate towards device f0bf1cdf-bee1-3525-817c-b593fcb8c8bb: Unknown SSH host key
4
5 admin@ncs# devices device f0bf1cdf-bee1-3525-817c-b593fcb8c8bb ssh fetch-host-keys
6 result updated
7 fingerprint {
8 algorithm ssh-rsa
9 value 9e:7d:f8:c4:14:b9:87:4c:f0:a9:bf:36:41:65:80:ab
10 }
狀態為disable
ncs_cli -u admin -C
show devices device state
devices device 2c678746-c18d-3f32-8bcc-74a64c76da91
state oper-state disabled
state oper-state-error-tag noconnection
# 查看错误原因
admin@ncs# devices device 2c678746-c18d-3f32-8bcc-74a64c76da91 sync-from
result false
info Failed to authenticate towards device 2c678746-c18d-3f32-8bcc-74a64c76da91: Bad password for local/remote user admin/admin Auth failed
no space left on device
# robot 里
cd /mnt/robot_logfs/robot-cfgsvc/1/ncs-logs
rm -rf rollback*
NED team support
add cmd 開case
download
- ncs
https://earth.tail-f.com:8443/ncs-pkgs/cisco-ios/4.5.5/
- nso
https://earth.tail-f.com:8443/ncs/
https://software.cisco.com/download/special/release.html?config=ec46b94d82ecbe84593bbc5a96c4c04b
build NSO docker
server
# 登入server
ssh root@cmts-build02 # pw: cmtsor123
ssh build@cmts-build01, passwd: build123
具體編譯打包信息
CABUORCH-1560
steps
# sign 文件到 tar
sh ncs-4.5.5-cisco-ios-6.0.2.signed.bin
# upload to engci
curl --noproxy cisco.com -i -X PUT -u robot-dev-deployer:qqyiwhc7ts6um8sw -v --retry 999 --retry-max-time 0 -T ncs-4.5.5-cisco-ios-6.0.2.tar.gz "http://engci-maven-master.cisco.com/artifactory/robot-dev-thirdparty/com.cisco/cfgsvc/nso-4.5.5/ncs-4.5.5-cisco-ios-6.0.2.tar.gz"
curl --noproxy cisco.com -i -X PUT -u robot-dev-deployer:qqyiwhc7ts6um8sw -v --retry 999 --retry-max-time 0 -T ncs-4.5.5-cisco-iosxr-6.5.tar.gz "http://engci-maven-master.cisco.com/artifactory/robot-dev-thirdparty/com.cisco/cfgsvc/nso-4.5.5/ncs-4.5.5-cisco-iosxr-6.5.tar.gz"
curl --noproxy cisco.com -i -X PUT -u robot-dev-deployer:qqyiwhc7ts6um8sw -v --retry 999 --retry-max-time 0 -T nso-4.5.5.darwin.x86_64.installer.bin "http://engci-maven-master.cisco.com/artifactory/robot-dev-thirdparty/com.cisco/cfgsvc/nso-4.5.5/nso-4.5.5.darwin.x86_64.installer.bin"
curl --noproxy cisco.com -i -X PUT -u robot-dev-deployer:qqyiwhc7ts6um8sw -v --retry 999 --retry-max-time 0 -T nso-4.5.5.linux.x86_64.installer.bin "http://engci-maven-master.cisco.com/artifactory/robot-dev-thirdparty/com.cisco/cfgsvc/nso-4.5.5/nso-4.5.5.linux.x86_64.installer.bin"
# delete
curl --noproxy cisco.com -X DELETE -u robot-dev-deployer:qqyiwhc7ts6um8sw "http://engci-maven-master.cisco.com/artifactory/robot-dev-thirdparty/com.cisco/cfgsvc/nso-4.4.5/nso-4.4.5.darwin.x86_64.installer.bin"
# :downloadNso
Download http://engci-maven-master.cisco.com/artifactory/robot-dev-thirdparty/com.cisco/cfgsvc/nso-4.4.2/nso-4.4.2.linux.x86_64.installer.bin
# change version
https://bitbucket-eng-sjc1.cisco.com/bitbucket/projects/CMTSORCH/repos/robot-cfgsvc/browse/src/packages/dlm/gradle.properties
nsoInstallerVersion=4.5.5
nsoVersion=4.5.5
iosNedVersion=6.0.2