Vagrant / VirtualBox没有设置正确的网关

Capacytron

我无法击败Vagrant / VirtualBox和Ansible,请帮忙。这是我在Vagrant中的网络配置:

 config.vm.define "mesosnode01" do |node1|
    node1.vm.box = "ubuntu/trusty64"
    node1.vm.hostname = "mesosnode01"
    node1.vm.network  "private_network", ip: "192.168.56.10"
    config.vm.provider "virtualbox" do |vb|
      vb.customize ["modifyvm", :id, "--memory", "3072"]
    end
  end

我希望默认的eth设备将具有192.168.56.10地址。但是我错了。输出如下:

对于IP路由列表:

vagrant@mesosnode01:~$ sudo ip route list
default via 10.0.2.2 dev eth0 
10.0.2.0/24 dev eth0  proto kernel  scope link  src 10.0.2.15 
192.168.56.0/24 dev eth1  proto kernel  scope link  src 192.168.56.10 

对于VM端的ifconfig:

vagrant@mesosnode01:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:84:06:a3  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe84:6a3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1922 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1247 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:191345 (191.3 KB)  TX bytes:163962 (163.9 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:fc:bb:de  
          inet addr:192.168.56.10  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fefc:bbde/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:132 errors:0 dropped:0 overruns:0 frame:0
          TX packets:91 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:109552 (109.5 KB)  TX bytes:23202 (23.2 KB)

因此,我的服务的一部分从10.0.2.15开始,另一部分从预期的192.168.56.10开始

问题是我的Ansible角色(取自galaxy / github)使用ansible_default_ipv4,它指向“错误”的界面。

"ansible_facts": {
        "ansible_all_ipv4_addresses": [
            "10.0.2.15", 
            "192.168.56.10"
        ], 
"ansible_default_ipv4": {
            "address": "10.0.2.15", 
            "alias": "eth0", 
            "gateway": "10.0.2.2", 
            "interface": "eth0", 
            "macaddress": "08:00:27:84:06:a3", 
            "mtu": 1500, 
            "netmask": "255.255.255.0", 
            "network": "10.0.2.0", 
            "type": "ether"
        }, 

我做错了什么?

Capacytron

请看看@techraf的答案。我已经使用该答案中的信息创建了一个任务:

- name: set eth1 to default interface
  shell: route add -net 8.8.8.8 netmask 255.255.255.255 eth1
  when : ansible_default_ipv4.alias != "eth1"

该命令是幂等的,您可以根据需要运行多次。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章