Làm cách nào để tôi đóng gói hộp Vagrant với tệp Vagrant tùy chỉnh (mạng công cộng, cài đặt RAM, v.v.)


2

Tôi đã đóng gói một VirtualBox với tất cả các cài đặt tôi muốn. Tôi đặt mạng thành 'bộ chuyển đổi cầu nối' (Vagrant gọi đó là 'public_network'). Tôi thậm chí còn nhìn box.ovfvào .boxtập tin và nó nói

$ 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>

Nhưng khi tôi cố gắng thêm hộp với vagrant box add box-name box.boxinithộp, thì nó tạo ra máy mà không có bộ chuyển đổi cầu nối. Nó đã sử dụng NAT.

Tôi thậm chí đã cập nhật .boxtệp (là tệp tar được nén) và ghi đè lên Vagrantfilevới tùy chỉnh của tôi Vagrantfileđã có

config.vm.network "public_network"

Tôi lại thêm hộp (với --force), chạy vagrant init box-namemột lần nữa, và nó vẫn tạo ra một Vagrantfilevới config.vm.networknhận xét ra!

Vậy, làm thế nào ?

Âm đạo 2.0.1


Đây là mạng VM được tạo thủ công của tôi trong VirtualBox:

nút gốc mạng

Tôi đã tạo package-the-vagrantfile/Vagrantfilecó chứa

Vagrant.configure("2") do |config|
  config.vm.network "public_network"
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "64"
  end
end

Theo tài liệu

https://www.vagrantup.com/docs/networking/public_network.html

Tôi gói VM này với

$ vagrant package --base node --vagrantfile package-the-vagrantfile/Vagrantfile

Nó tạo ra package.box. Tôi khởi tạo hộp với

$ vagrant init package.box --minimal ; vagrant up

Nó bắt đầu một hộp mới ...

$ 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...

Nhưng nó có mạng sai

mạng của nút mới

Nó có bộ nhớ chính xác

ký ức

Chỉ thị mạng là trong hộp quá.

$ tar -xOf package.box ./include/_Vagrantfile
Vagrant.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)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.