Estou executando o Vagrant 1.7 (do pacote oficial 1.7) no Ubuntu 14.04 LTS e estou tentando provisionar várias VMs privadas e uma pública. Os scripts de provisionamento do Ansible alteram todas as senhas do "vagrant / root" e substituem as chaves SSH de ações do Vagrant pelo aspecto de segurança.
Todos os meus IPs internos são 10.10.20.0/24. Eu tenho uma VM que precisa do IP 10.42.7.226 (que tem um NAT indo de nosso IP externo real para as portas 80/443).
O hypervisor está em 10.42.7.227 e criei um br0 com esse IP conectado a eth0. Minha configuração de rede é semelhante à seguinte:
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 10.42.7.227
netmask 255.255.255.0
network 10.42.7.0
broadcast 10.42.7.255
gateway 10.42.7.1
dns-nameservers 8.8.8.8
auto br0
iface br0 inet static
address 10.42.7.227
netmask 255.255.255.0
gateway 10.42.7.1
bridge_ports eth0
bridge_stp off
bridge_maxwait 0
bridge_fd 0
Estou trabalhando nisso remotamente, e é por isso que tive medo de remover o IP da eth0. Eu percebo que br0 deve substituí-lo (br * tem os IPs reais e eth * não).
Na minha configuração do Vagrent, tenho um bloco como o seguinte:
config.vm.define "haproxy" do |haproxy|
haproxy.vm.network :private_network, ip: 10.10.20.12
haproxy.vm.network :public_network, ip: 10.42.7.226
haproxy.vm.hostname = vars.hostname('haproxy')
haproxy.hostmanager.aliases = vars.aliases('haproxy')
haproxy.vm.provision "ansible" do |ansible|
ansible.playbook = "ansible/haproxy.yml"
end
end
No entanto, nessa VM, vejo apenas os seguintes adaptadores:
eth0 inet addr:192.168.121.189
eth1 inet addr:10.10.20.12
eth2 inet addr:10.42.7.169 Bcast:10.42.7.255 Mask:255.255.255.0
e no hipervisor eu vejo o seguinte em br0:
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0022192df5a7 no eth1
virbr0 8000.000000000000 yes
virbr1 8000.525400eda938 yes virbr1-nic
vnet0
vnet2
vnet4
vnet6
virbr2 8000.525400c3098d yes virbr2-nic
vnet1
vnet3
vnet5
vnet7
e o ifconfig do hipervisor para os dispositivos virbr *:
virbr0 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
virbr1 inet addr:192.168.121.1 Bcast:192.168.121.255 Mask:255.255.255.0
virbr2 inet addr:10.10.20.1 Bcast:10.10.20.255 Mask:255.255.255.0
Parece que o libvirt / kvm está estabelecendo 192 redes por algum motivo. Eu não estou muito preocupado com isso, mas eu estou supondo que meu 10.42.7.226 foi convertido em 10.42.7.169 de alguma forma dentro do provisionamento Vagrant / libvirt.
Eu estou supondo que eu preciso de outra rede no libvirt? Tudo que pareço ter é o padrão:
<network>
<name>default</name>
<uuid>baa4b92a-b8ee-4e2f-a31a-bb3112b51dc0</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:9d:3b:a9'/>
<ip address='10.10.20.1' netmask='255.255.255.0'>
<dhcp>
<range start='10.10.20.2' end='10.10.20.254'/>
</dhcp>
</ip>
</network>
Estou um pouco confuso com a documentação do libvirt. Eu basicamente preciso que minha VM haproxy tenha um adaptador com o endereço IP 10.42.7.226 acessível na rede física conectada à eth0 da máquina host. O que eu preciso fazer nesta configuração para que isso aconteça?