Como faço para empacotar uma caixa Vagrant com o arquivo Vagrant personalizado (rede pública, configurações de RAM, etc.)

2

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/Vagrantfilecontendo

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

link

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)
    
por Chloe 07.04.2017 / 06:58

0 respostas