Vagrant(3)-Vagrant Boxのコピー/バックアップ

2910 ワード

Vagrant(3)-Vagrant Boxのコピー/バックアップ


サマリ


Vagrant Boxのコピー/バックアップの基本的な方法について説明します

バージョン#バージョン#


Vagrantバージョン:1.8.1

内容


vagrant boxをコピーして圧縮


実行中のVagrantを閉じる
vagrant halt

同じパスでpackageを作成します.boxファイル
vagrant package

これで完成です.

vmや出力名などを指定する場合は、

vagrant package -h

⇒  vagrant package -h
Usage: vagrant package [options] [name]

Options:

    --base NAME                  Name of a VM in virtualbox to package as a base box
    --output NAME                Name of the file to output
    --include FILE...            Additional files to package with the box
    --vagrantfile FILE           Vagrantfile to package with the box
    -h, --help                       Print this help    

package.boxこのファイルは現在のvagrant vmのフルミラーであり、圧縮されています.

新しいvmを作成する(高速メソッド)


新しいvagrantのディレクトリを作成し、新しいVagrantfileを初期化します.
vagrant init

ファイルVagrantfileを開き、ファイルを編集し、現在のデフォルトのbox名を「my-backup-test-box」などの新しいbox名に変更します.
config.vm.box = "my-backup-test-box"

注釈付きbox位置の構成を有効にする
# config.vm.box_url = "http://domain.com/path/to/above.box"

以上のパスはboxのファイルパスで、windowsユーザーは
config.vm.box_url = "file:///d:/folder/package.box"

デフォルトのIP構成を変更し、ネイティブのipアドレスを推奨し、最後に+1
config.vm.network :private_network, ip: "192.168.33.101"

Vagrantの再実行
vagrant up

新しいvmの作成(完全な方法)


boxをvagrant boxリストに追加する場合は、ファイルパスではなく名前で使用できます.
vagrant package

Virtualboxにboxを追加(名前name-of-this-boxを選択)
vagrant box add --name name-of-this-box package.box virtualbox

注意上記コマンドラインパラメータ--name
    ⇒  vagrant box add --name name-of-this-box package.box
    ==> box: Box file was not detected as metadata. Adding it directly...
    ==> box: Adding box 'name-of-this-box' (v0) for provider:
    box: Unpacking necessary files from: file:///Users/Richard/Documents/Dev/vagrant/package.box
    ==> box: Successfully added box 'name-of-this-box' (v0) for 'virtualbox'!

名前でvmを作成できます
config.vm.box = "name-of-my-box"

この方法ではconfigを再構成する必要はない.vm.box_url

synced folderに注意


boxをパッケージ化して新しいvmを作成すると、お客様(guest)のsynced folderの内容が失われる可能性がありますので、その前にsyncedを閉じたほうがいいです.
config.vm.synced_folder ".", "/vagrant", disabled: true 

しんそくがない

リファレンス


How to copy Vagrant boxes (or duplicate them)