vagrant boxを他のPCでimport

補足

  • drupalvmをベースに手順化しています。
  • MacOSXではdrupalvmは動くのですがWindowsですとansibleのcomposer buildから先に進まない問題の為の暫定対処として残しています。
  • つまりMacOSでbuildしたBoxをwindowsにimoortする手順となります。

Export

  1. Vagrantfileのあるディレクトリに移動
  2. Export
vagrant package --output {{output file}} 
  1. package.boxが作成される。
  2. USB MemoryなどにCopy
    • drupal.vm.localというフォルダを作成
    • config.ymlとVagrantfileとpackage.box.zipをCopy
  3. USB memoryの中でzip化
    • zip化は不要かもしれません。
zip -r drupal.vm.local.zip *

Import

Preparation

  1. 移行先でもdurpalvmをgit cloneしておき、同じ物を用意しておく。
  2. 移行先で上記zipをVagrantfileのあるディレクトリで解凍。
    • config.ymlとvagrantfileをは上書き
    • package.boxは追加となります。

Add box

  • 既存Boxの削除
vagrant destroy
vagrant box remove [VAGRANT MACHINE NAME]
  • Boxの追加
vagrant box add --debug [VAGRANT MACHINE NAME] ./package.box
  • [BOX_NAME]はconfig.ymlの”vagrant_machine_name”に置き換えて実行して下さい。
    • 確認
vagrant box list
  • Init
vagrant init drupalvm
  • 起動

vagrant up --debug

やり直しの場合

  • もしImportやupが途中で止まった場合は以下のようにBoxのDestroyと.vagrantも削除すればやり直せます。
vagrant destroy
rm -r .vagrant
rm -r ~/.vagrant.d
  • vagrant_machine_name=BOX NAMEはオリジナルと同じにしておくと良いかもしれません。
  • テストしたversion
    • VirtualBox 5.2.8

Example Vagrantfile

  • Install vagrant Plugin
vagrant plugin install vagrant-multiplug
# -*- mode: ruby -*-
# vi: set ft=ruby :


Vagrant.configure('2') do |config|
  # Set the name of the VM. See: http://stackoverflow.com/a/17864388/100134
  config.vm.define "drupalvm"

  # Networking configuration.
  config.vm.box = "drupalvm"
  config.vm.network :"private_network", ip: "198.168.88.88", auto_network: false

  config.vm.hostname = "drupal.vm.local"
  config.hostsupdater.aliases = [
    "drupal.vm.local",
    "www.drupal.vm.local",
  ]

   config.vm.network "forwarded_port", guest: 80, host: 30000
   config.vm.network "forwarded_port", guest: 9200, host: 9200
   config.vm.network "forwarded_port", host: 1080, guest: 1080

  config.plugin.add_dependency "vagrant-vbguest"
  config.vm.provider "virtualbox" do |vb|
    vb.memory = 2048
    vb.customize ["modifyvm", :id, "--cpuexecutioncap", 80]
  end

# Synced folders.
  options = {
    type: "nfs",
    rsync__exclude: "",
    rsync__args: ['--verbose', '--archive', '--delete', '-z', '--copy-links', '--chmod=ugo=rwX'],
    id: 1,
    create: true,
    mount_options: [],
    nfs_udp: false
  }
  config.vm.synced_folder ".", "/var/www/drupalvm", options

end

参考サイト

コメントを残す