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

Я не могу победить Бродяга / 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

Я ожидаю, что по умолчанию 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 

для 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"
        }, 

что я делаю не так?

8
задан Sergey
08.11.2022 17:54 Количество просмотров материала 2688
Распечатать страницу

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"

эта команда идемпотентна, вы можете запускать ее столько раз, сколько хотите.

-1
отвечен Sergey 2022-11-10 01:42

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх