SONiC PTF testbed的技術比較複雜,用到了Ansible-playbook, Pytest, Arista vEOS, Dokcer, 等開源技術。我是通過公司一年左右時間的學習部署才慢慢掌握。
我們佈置的PTF testbed 採用了簡化的部署方式,只有一臺DUT Switch,一臺RootFanout Switch,都是採用的銳捷B6510--48VS8CQ交換機。DUT Switch部署的是SONiC201911交換機操作系統。部署圖如下:
部署的topo 是ptf32,從部署到運行的命令如下所示:
- ansible -m ping -i veos vm_host_1
- ./testbed-cli.sh -n 32 start-vms server_1 password.txt
- ansible -m ping -i veos server_1
- ./testbed-cli.sh add-topo ptf1-m ~/.password
- ./testbed-cli.sh deploy-mg ptf1-m lab password.txt
- ansible-playbook -i lab -l str-msn2700-01 test_sonic.yml -e testbed_name=ptf1-m -e testcase_name=neighbour -e ptf_host=ptf1
部署過程中遇到不少問題,現將常見的問題整理如下:
- Unable ssh to vEOS VM in Ansible with "Permission denied (publickey,keyboard-interactive)" ISSUE 1513 解決方法,添加如下ansible 參數到veos 文件:VM0100 ansible_host=172.28.55.143 ansible_ssh_user=root ansible_ssh_pass=123456
- Unable to Start VM (vEOS and SONiC) ISSUE #1489 解決方法,添加-n 32參數到如下命令:./testbed-cli.sh -n 32 start-vms server_1 password.txt
- 服務器Mellanox網卡配置的VLAN不能ping通交換機設置的VLAN. 解決方法設置網卡的混雜工作模式:ifconfig eth0 promisc
- Start VM failed with "Unable to get index for interface VM0601-back: No such device" #1481 ISSUE 1481 解決方法,升級Ubuntu 到18.04版本可以解決該問題
最後我們建了一個微信羣Sonic-mgmt,如果有問題的工程師可以加入這個羣,加我的微信“18830245264”可以把你拉進這個羣。