O Vagrant / VirtualBox não configura o gateway correto

2

Eu não posso derrotar o Vagrant / VirtualBox e Ansible, por favor ajude. Aqui está minha rede conf no 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

Espero que o dispositivo eth padrão tenha um endereço 192.168.56.10 . Mas eu estou errado. Aqui está a saída:

para a lista de rotas do 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 

para o ifconfig no lado da VM:

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)

Assim, parte dos meus serviços começam em 10.0.2.15 , a outra parte começa com 192.168.56.10 esperado.

O problema é que meus papéis Ansible (tirados do galaxy / github) usam ansible_default_ipv4 e apontam para uma interface "errada".

"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"
        }, 

O que eu faço de errado?

    
por Sergey 25.10.2015 / 22:02

1 resposta

-1

por favor dê uma olhada na resposta do @techraf. Eu criei uma tarefa usando informações dessa resposta:

- 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"

Este comando idempotente, você pode executá-lo quantas vezes quiser.

    
por 01.11.2015 / 21:34