Eu empacotei um VirtualBox com todas as configurações que eu queria. Eu configurei rede para 'adaptador em ponte' (o Vagrant chama de 'public_network'). Eu até olhei para box.ovf
no arquivo .box
e ele disse
$ tar xOf nycmesh-qmp-openwrt.box box.ovf | less
<NetworkSection>
<Info>Logical networks used in the package</Info>
<Network ovf:name="Bridged">
<Description>Logical network used by this appliance.</Description>
Mas quando tentei adicionar a caixa com vagrant box add box-name box.box
e init
da caixa, então ela gerou a máquina sem um adaptador em ponte. Usou NAT.
Eu até atualizei o arquivo .box
(que é um arquivo tar gzipado) e sobrescrevi o Vagrantfile
com o meu Vagrantfile
personalizado que tinha
config.vm.network "public_network"
Eu adicionei novamente a caixa (com --force
), executei vagrant init box-name
novamente e ainda gerou um Vagrantfile
com config.vm.network
comentado!
Então, como ?
Vagrant 2.0.1
Esta é a minha rede VM criada manualmente no VirtualBox:
Eucrieipackage-the-vagrantfile/Vagrantfile
contendo
Vagrant.configure("2") do |config|
config.vm.network "public_network"
config.vm.provider "virtualbox" do |vb|
vb.memory = "64"
end
end
De acordo com a documentação
Eu empacoto esta VM com
$ vagrant package --base node --vagrantfile package-the-vagrantfile/Vagrantfile
Cria package.box
. Eu instancio a caixa com
$ vagrant init package.box --minimal ; vagrant up
Inicia uma nova caixa ...
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'package.box'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: node_default_1522176655197_96615
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
Mas tem a rede errada
Elepossuiamemóriacorreta
Adiretivaderedetambémestánacaixa.
$tar-xOfpackage.box./include/_VagrantfileVagrant.configure("2") do |config|
config.vm.network "public_network"
...
$ tar -xOf package.box ./Vagrantfile
Vagrant::Config.run do |config|
...
# Load include vagrant file if it exists after the auto-generated
# so it can override any of the settings
include_vagrantfile = File.expand_path("../include/_Vagrantfile", __FILE__)
load include_vagrantfile if File.exist?(include_vagrantfile)
Tags networking virtualbox vagrant linux