Vagrant / VirtualBox не встановлює правильний шлюз


2

Я не можу перемогти Vagrant / VirtualBox та Ansible, будь ласка, допоможіть. Ось мій мережевий конф у Вагранті:

 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

Я сподіваюся, що et-пристрій за замовчуванням матиме адресу 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 

для ifconfig на стороні 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)

Тож частина моїх послуг починається 10.0.2.15 , інша частина очікується 192.168.56.10 .

Проблема полягає в тому, що мої ролі Ansible (взяті з галактики / 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"
        }, 

Що я роблю неправильно?

Відповіді:


-1

будь ласка, подивіться на відповідь @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"

Ця команда idempotent, ви можете запустити її стільки разів, скільки захочете.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.