Como mudar o vagrant guest vm ip quando a máquina host muda a rede?

0

Eu tenho uma caixa de cliente vagrant "ubuntu / trusty64" no meu laptop. Eu frequentemente mudo de rede para casa / trabalho / caffe ou conecto meu laptop ao meu hotspot celular.

Eu gostaria de usar redes públicas em todas as redes diferentes reconfigurando a interface de rede do cliente vagrant de acordo com a rede em que eu tenho minha máquina. Então, não tenho medo de adicionar rotas ou descomentar blocos de configuração conforme necessário - contanto que funcione.

Eu também gostaria de usar o arquivo de configuração ssh em minha máquina host ubuntu para poder navegar facilmente pelo sistema de arquivos das caixas vagrant via sftp.

Pergunta : como devo fazer isso?

Isso é o que eu tentei:

The initial setup that works:

Host machine:
---------------
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

...
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether a4:c4:94:5f:00:a5 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global wlan0
   valid_lft forever preferred_lft forever
inet6 fe80::a6c4:94ff:fe5f:a5/64 scope link 
   valid_lft forever preferred_lft forever


Guest vm:
---------------
config.vm.network :public_network, bridge: "wlan0", ip: "192.168.1.251", netmask: "255.255.255.0"

Em seguida, altero a rede (por exemplo, conecte-se ao hotspot da célula):

Host machine:
---------------
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.43.1     0.0.0.0         UG    0      0        0 wlan0
192.168.43.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether a4:c4:94:5f:00:a5 brd ff:ff:ff:ff:ff:ff
inet 192.168.43.101/24 brd 192.168.43.255 scope global wlan0
   valid_lft forever preferred_lft forever
inet6 fe80::a6c4:94ff:fe5f:a5/64 scope link 
   valid_lft forever preferred_lft forever



Guest vm:
---------------
config.vm.network :public_network, bridge: "wlan0", ip: "192.168.43.105", netmask: "255.255.255.0"

Conectar-se a 192.168.43.105 não funciona via ssh (usando a configuração ssh). Após investigar, vejo que a interface de rede não está nem mesmo atribuída (vi isso verificando a GUI na caixa virtual durante a inicialização):

Oipantigoestásendoatribuído.

Deixe-mesabersobrequaisquerpensamentoseideiasparasoluçãodeproblemas.

P.S.

Estoumovendoaperguntadoserverfault: link

Desculpe antecipadamente se isso não está de acordo com as regras. Eu realmente espero que seja.

    
por Mindaugas Bernatavičius 25.08.2016 / 17:24

1 resposta

0

Existem várias maneiras de resolver isso, mas todas envolvem o host ou a máquina de adivinhação participando da mesma rede.

Eu simplesmente criei um alias de ip na minha conexão gerenciada pelo gerenciador de rede wlan0 em minha rede doméstica e de trabalho (uma rede é definida pelo IP e pela máscara de sub-rede).

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether a4:c4:94:5f:00:a5 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global wlan0
   valid_lft forever preferred_lft forever
inet 192.168.0.158/24 brd 192.168.0.255 scope global wlan0
   valid_lft forever preferred_lft forever
inet6 fe80::a6c4:94ff:fe5f:a5/64 scope link 
   valid_lft forever preferred_lft forever

E o sistema operacional de adivinhação tem apenas 1 IP:

config.vm.network :public_network, bridge: "wlan0", ip: "192.168.0.159", netmask: "255.255.255.0"

Agora, quando estou em casa, posso fazer o ssh na máquina, pois tenho um alias de IP e minha NIC está participando da mesma rede que a máquina convidada. Quando estou no trabalho, ele funcionará automaticamente, pois minha NIC estará automaticamente na mesma sub-rede.

    
por 29.08.2016 / 08:27