2019-08-05 testbed添加topo时VM108失败

问题描述:
做testbed测试时虚机能启动,但在添加topo时有一个虚机一直配置失败。显示No route to host。
解决办法:

oxl@52db682e4d9d:~/sonic-mgmt/ansible$ cat lab 

查看交换机对应ip的信息

oxl@52db682e4d9d:~/sonic-mgmt/ansible$ cat veos

查看虚机对应的ip信息

……
[vms_1]
VM0100 ansible_host=10.250.0.2
VM0101 ansible_host=10.250.0.3
VM0102 ansible_host=10.250.0.4
VM0103 ansible_host=10.250.0.5
VM0104 ansible_host=10.250.0.6
VM0105 ansible_host=10.250.0.7
VM0106 ansible_host=10.250.0.8
VM0107 ansible_host=10.250.0.9
VM0108 ansible_host=10.250.0.10
VM0109 ansible_host=10.250.0.11
VM0110 ansible_host=10.250.0.12
……

可以看到VM108的ip地址应为10.250.0.10
接下来在服务器中输入:

sudo virsh list

查看到目前运行的虚机,VM108和109已经起来了。

wumy@Asterfusion:~$ ps -ef | grep VM0108
wumy      4517  3896  0 16:38 pts/12   00:00:00 grep --color=auto VM0108
libvirt+ 38761     1  6 12:17 ?        00:18:05 /usr/bin/qemu-system-x86_64 -name VM0108 -S -machine pc-i440fx-1.5,accel=kvm,usb=off -m 2048 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 909a2dd1-1b6d-4335-8419-50e1e274bd67 -nographic -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-VM0108/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/home/sonic/veos-vm/disks/VM0108_hdd.vmdk,format=vmdk,if=none,id=drive-ide0-0-0,cache=writeback -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2 -drive file=/home/sonic/veos-vm/images/Aboot-veos-serial-8.0.0.iso,format=raw,if=none,id=drive-ide0-1-0,readonly=on -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 -netdev tap,fd=29,id=hostnet0,vhost=on,vhostfd=35 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:9c:32:1f,bus=pci.0,addr=0x2 -netdev tap,fd=36,id=hostnet1,vhost=on,vhostfd=37 -device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:2c:2e:45,bus=pci.0,addr=0x3 -netdev tap,fd=38,id=hostnet2,vhost=on,vhostfd=39 -device virtio-net-pci,netdev=hostnet2,id=net2,mac=52:54:00:76:e6:4f,bus=pci.0,addr=0x5 -netdev tap,fd=40,id=hostnet3,vhost=on,vhostfd=41 -device virtio-net-pci,netdev=hostnet3,id=net3,mac=52:54:00:db:19:11,bus=pci.0,addr=0x6 -netdev tap,fd=42,id=hostnet4,vhost=on,vhostfd=43 -device virtio-net-pci,netdev=hostnet4,id=net4,mac=52:54:00:1f:35:53,bus=pci.0,addr=0x7 -netdev tap,fd=44,id=hostnet5,vhost=on,vhostfd=45 -device virtio-net-pci,netdev=hostnet5,id=net5,mac=52:54:00:48:b2:ed,bus=pci.0,addr=0x8 -chardev socket,id=charserial0,host=127.0.0.1,port=7008,telnet,server,nowait -device isa-serial,chardev=charserial0,id=serial0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -msg timestamp=on

ps 命令的作用是显示进程信息的;

| 是个管道符号,表示ps 和 grep 命令同时执行;

grep 命令是查找(Global Regular Expression Print),能使用正则表达式搜索文本,然后把匹配的行显示出来;

ps命令有一些参数:

  -e : 显示所有进程

  -f : 全格式

  -h : 不显示标题

  -l : 长格式

  -w : 宽输出

  -a :显示终端上的所有进程,包括其他用户的进程。

  -r :只显示正在运行的进程。

  -u :以用户为主的格式来显示程序状况。

  -x :显示所有程序,不以终端机来区分

猜测很有可能在第二个进程中VM108的ip地址被改了。
信息显示:VM108的host=127.0.0.1,port=7008
我们需要查看这个节点是否可用,这里要用到telnet命令来远程登录
#telnet命令用于查看某一个机器上的某一个端口是否可以访问#

wumy@Asterfusion:~$ telnet 127.0.0.1 7008
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

ARISTA01T1 login: admin
Password: (123456)
ARISTA01T1>show interfaces 
Ethernet1 is up, line protocol is up (connected)
  Hardware is Ethernet, address is 5254.002c.2e45 (bia 5254.002c.2e45)
  Member of Port-Channel1
  Ethernet MTU 9214 bytes
  Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a
  Up 4 hours, 19 minutes, 14 seconds
      ……
Management1 is up, line protocol is up (connected)
  Hardware is Ethernet, address is 5254.0069.e08d
  Description: TO LAB MGMT SWITCH
  Internet address is 10.250.0.70/24
  Broadcast address is 255.255.255.255
  Address determined by manual configuration
  IP MTU 1500 bytes , BW 1000000 kbit
  Full-duplex, 1Gb/s, auto negotiation: on, uni-link: n/a
  Up 4 hours, 19 minutes, 14 seconds
  ……

其中Management1是VM108的节点的管理口,ip不知道被谁改成了10.250.0.70 = =所以添加topo的时候才会出错。
退出admin,进入root模式
(或者直接输入enable)
修改startup-config这个配置文件:

ARISTA01T1>exit

ARISTA01T1 login: root
Password: (123456)
Last login: Mon Aug  5 04:30:12 on ttyS0

Arista Networks EOS shell

-bash-4.1# vi /mnt/flash/startup-config

通过查找10.250.0.70,修改成10.250.0.10

在vi里查找相应关键字的方法:

  1. /关键字 ,回车。从文档当前位置向下查找关键字,按n键查找关键字下一个位置;
    2.?关键字,回车。从文档当前位置向上查找关键字,按n键向上查找关键字;
    保存退出后reboot即可,这个过程有点长。然后就能成功添加topo。

ps:查看源代码中的添加topo的配置文件在哪里
git,分支201811,sonic-testbed/ansible/roles/veos/task/main.yml

pps:telnet的退出:ctrl+],然后q,回车

ppps:git的操作

➜  sonic-testbed git:(master) git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。
无文件要提交,干净的工作区
➜  sonic-testbed git:(master) git checkout 201811
分支 201811 设置为跟踪来自 origin 的远程分支 201811。
切换到一个新分支 '201811'
➜  sonic-testbed git:(201811) git status
位于分支 201811
您的分支与上游分支 'origin/201811' 一致。
无文件要提交,干净的工作区

你可能感兴趣的:(2019-08-05 testbed添加topo时VM108失败)