Smartphy
從 qingwei personal wiki
目錄
Android
發佈release版本的apk
a. Get the latest code from the git repository (android-app.git)
b. Install Android Studio (If you have not already done so)
c. Open the project in Android Studio.
d. Try a debug build before the official release to make sure code compiles & run it either on emulator/actual phone.
e. Go to build.grade file to edit version/build number (/Users/vidhsubr/IdeaProjects/android_app/android-app/app/build.gradle)
f. Now to make an official release, please click on build drop down menu, choose option "Generate Signed APK"
g. A pop up window appears; you'd need to fill in the below details
h. choose app module in the pop up and hit "next"
i. Keystore path will be "<project-path>/android-app/android.jks"; For ex : /Users/vidhsubr/IdeaProjects/android-app/android.jks
j. Key store password: cisco123
k. Key alias: myandroidkey
l. Key password: cisco123; hit next
m. choose apk destination folder; For ex /Users/vidhsubr/IdeaProjects/android_app/android-app/app
n. Build type is "release"
o. signature versions are v1 & v2
p. hit finish
q. If everything compiles well & there are no errors then "app-release.apk" file will be found in the previously specified location.
CBR 配置
真RPD ipv6 online
CRDC-NG-E09#sh run int tenGigabitEthernet 4/1/7
Load for five secs: 4%/1%; one minute: 6%; five minutes: 6%
Time source is NTP, 20:59:25.271 PST Mon Mar 5 2018
Building configuration...
Current configuration : 170 bytes
!
interface TenGigabitEthernet4/1/7
ip address 60.10.10.5 255.255.255.0
ipv6 address 2001:60:10:10::5/64
ipv6 enable
ipv6 dhcp relay destination 2001:20:1:1::33 ### 删掉这一行 不能IPV6上线,切换到IPV4上线
end
# 前提是RPD的DS要选DS controller,这个DS配置了IPV6地址, 如下7/1/0
CRDC-NG-E09#sh run int tenGigabitEthernet 7/1/0
Load for five secs: 4%/1%; one minute: 8%; five minutes: 7%
Time source is NTP, 20:58:47.282 PST Mon Mar 5 2018
Building configuration...
Current configuration : 223 bytes
!
interface TenGigabitEthernet7/1/0
vrf forwarding lcha-710
ip address 60.10.10.1 255.255.255.0
ip helper-address global 20.1.0.33
cdp enable
ipv6 address 2001:60:10:10::1/64
ipv6 enable
ipv6 nd ra suppress all
end
video
profile
CRDC-NG-E09#sh run | s profile 67
cable downstream controller-profile 67
rf-chan 32
type VIDEO ASYNC
qam-profile 1
rf-output NORMAL
support virtual splitting
cable downstream controller-profile 68
multicast-pool 62 # !!!
rf-chan 64
type VIDEO ASYNC
qam-profile 1
rf-output NORMAL
cable virtual-service-group sg-6-0-3 downstream-cable 6/0/2 profile 68
cable virtual-service-group video-service-group downstream-cable 7/0/1 profile 68
# pool 配置
CRDC-NG-E09#sh run | s multi
cable depi multicast pool 62
ip address 239.1.1.0 255.255.255.0
cable depi multicast pool 66
ipv6 address FF3A::8000:0/120
cable depi multicast pool 127
ip address 227.226.225.0 255.255.255.0
LCHA switch over
CRDC-NG-E09#redundancy linecard-group switchover from slot 6
看到online信息
CRDC-NG-E09#sh run | s logging
logging host 10.74.54.188 transport tcp port 8514
UI
啟動
BASE_URL=10.74.54.185 BASE_PORT=9000 HOST=10.74.54.185 npm start
# 如何kill
ps -ef | grep webpack
qingwyan 9392 9376 15 22:40 pts/21 00:00:48 node /home/qingwyan/workspace/robot-ui/node_modules/.bin/webpack-dev-server --inline --progress
build UI container
# 先到robot-ui目录下
git submodule init
git submodule update --remote
/bin/npm install
/bin/npm run build
MJ=1
D=`date +%y%m%d`
B=0
N=`git rev-parse --short HEAD`
TAG=$MJ.$B.$N.$D
sudo docker build -t dockerhub.cisco.com/robot-dockerprod/robot-ui:developv$TAG .
替換robot里的UI
# build UI container 后,build好的Image可以通过docker images看到
[qingwyan@crdc-sdn-ucs1 robot-ui]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dockerhub.cisco.com/robot-dockerprod/robot-ui developv1.0.46a5914.180117 563a2bb56717 54 minutes ago 869.2 MB
# 保存tar到本地
docker save -o ui.tar 563a2bb56717
# 将tar cp到robot 里
# 之后导入本地镜像到robot里
sudo docker load --input ui.tar
# 命名刚刚导入的image
docker tag 563a2bb56717 localbuild/ui
# 之后的操作跟rpd 设置Debug 模式一样
iptable
container里ping不通外面
sudo iptables -t nat -A POSTROUTING -s 192.168.125.0/24 -o ens192 -j MASQUERADE
常用命令
# 删一条iptable
sudo iptables -t nat -D PREROUTING 1
# 删所有iptable
iptables -F -t nat
# 查看iptable
iptables -t nat -L --line-number | more
GCP container
快速進入docker的腳本
KEY=k8s_gcp # gcp 换成 rpd
container_id=$(docker ps | grep $KEY | awk {'print $1'})
docker exec -it ${container_id} bash
# 一句话
docker exec -it $(docker ps | grep k8s_gcp | awk {'print $1'}) bash
debug
docker pull "dockerhub.cisco.com/cabu-cmts-orch-docker/gcp-service:debug"
# 查看log
tail -f /var/log/robot/gcp-service_stdout.log
設置debug模式
kubectl get pods --all-namespaces
kubectl exec --namespace=kube-system -it <robot-orch-container> bash
# 进入orch container 后, 修改orchmanifest.json
robotctl spec - generates the new yaml file for the containers
robotctl update – my guess updates pod.conf
robotctl stop – stop existing default namespace containers, sometimes I needed to wait for few seconds till they stopped
kubectl get pods --all-namespaces --- check that all default namespace containers stopped
robotctl start – start all containers
kubectl get pods --all-namespaces --- verify all containers RUNNING
# copy image
scp qingwyan@10.75.12.21:/home/qingwyan/workspace3/gcp-service/spring/target/gcp-service-0.1-SNAPSHOT.jar .
# 启动
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5006 gcp-service-0.1-SNAPSHOT.jar
一條命令kill java進程
ps -ef | grep java | grep -v grep | awk {'print $2'} | xargs kill -9
# grep -v grep 过滤掉auto出现的进程号
swagger ui
- 1.6.6 version(robot)
https://10.74.54.185:30604/rpd-service-manager/swagger-ui.html#
rpd container
debug
# 查看日志
tail -f /var/log/robot/rpd-service-manager_stdout.log
# 拉debug image
docker pull "dockerhub.cisco.com/cabu-cmts-orch-docker/rpd-service-manager:debug"
# copy debug image
scp qingwyan@10.75.12.21:/home/qingwyan/workspace3/rpd-service-manager/spring/target/rpd-service-manager-0.1-SNAPSHOT.jar .
# run debug image
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 rpd-service-manager-0.1-SNAPSHOT.jar
container里stop process
supervisorctl start rpd-service-manager
supervisorctl stop rpd-service-manager
nso
docker run
1 sudo docker run --publish 8083:8080 -itd dockerhub.cisco.com/robot-docker-v2/robot-cfgsvc
常用命令
1 # 进入CLI
2 bash-4.2# ncs_cli -u admin -C
traces
1 admin@ncs% set devices global-settings trace raw
2 # 保存位置
3 /var/log/robot/ncs-logs/xxx.trace
讀配置
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
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
1 admin@ncs# show devices device state
2 devices device 2c678746-c18d-3f32-8bcc-74a64c76da91
3 state oper-state disabled
4 state oper-state-error-tag noconnection
5 # 查看错误原因
6 admin@ncs# devices device 2c678746-c18d-3f32-8bcc-74a64c76da91 sync-from
7 result false
8 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*
重啟NSO
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
vi ncs-java-vm.log
手動添加一個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>
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/
build NSO docker
# 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-5.8.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-5.8.2.tar.gz"
# :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
cassandra
在liunx上run
docker run --publish 9042:9042 --publish 9160:9160 -d --name cassandra --net robot_network -e CASSANDRA_START_RPC=true -it cassandra:3.10
dhcp
ipv6
啟動ipv6 server
sudo /usr/local/sbin/dhcpd -6 -d -cf /etc/dhcp/dhcpd6.conf sdn-br
k8s
常用命令
# 删除一个pod
kubectl delete deployment rpd-service-manager
# apply 一个yaml
kubectl apply -f rpd-service-manager.yaml
# 查看所有运行的pods
kubectl get pods --all-namespaces
robot下單獨換cobtainer
kubectl delete service robot-ui
kubectl delete deployment robot-ui
kubectl apply -f robot-ui_service.yaml
kubectl apply -f robot-ui.yaml
從k8s_robot-orch下cp yaml文件
KEY=k8s_robot-orch
container_id=$(docker ps | grep $KEY | awk {'print $1'})
docker cp ${container_id}:/root/rpd-service-manager.yaml .
docker
doker ps 不需要用sudo
# Cannot connect to the Docker daemon. Is the docker daemon running on this host?
sudo groupadd docker
sudo usermod -aG docker $(whoami)
# restart VM才生效?
設置docker代理
cat /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://64.103.36.133:8080" "HTTPS_PROXY=http://64.103.36.133:8080" "NO_PROXY=localhost,.cisco.com, sdntools.cisco.com,10.124.8.66"
[jifu@crdc-sdn-ucs1 robot-ui]$
then
systemctl daemon-reload
service docker restart
test
pyats運行環境
source /auto/sjc-ccebuild-ar5/pyats-gate/env.sh
source /auto/pysw/ats64/env.sh
source ~/proxy.sh
cnr8
設置CCAP core
Design > DHCP Settings > Policies
# 搜索 2001:60
# 进入 Edit DHCP Policy 2001:60:10:10-E09
# 修改 Configured Options, 替换 ccap-cores 后的 2001:10:74:54::186
(enterprise-id 4491((tftp-servers 32 2001:20:1:1::33)(ccap-cores 61 2001:20:6:1::2)(rfc868-servers 37 2001:20:1:1::33)(syslog-servers 34 2001:20:1:1::33)(time-offset 38 8h)(cablelabs-client-configuration 2170 )))
#!!! 修改好后save, return回上级页面也要save!!!
restart dhcp
Deploy > DHCP > DHCP Server
kvm
restart guest server
virsh shutdown sp1210
virsh start sp1210
# 强制shutdown
virsh destroy sp1210