Vagrantを使用すると、Boxというイメージと構成情報を記述した設定ファイルを元に、仮想環境の構築から設定までを自動化することもできます。
これで環境の使いまわしや再構築も楽ちんなのですが、さらにこれをチーム内に共有したりする際にはBOXファイルを複製してシェアする用途にも使えます。
Boxのコピーはデータも設定ファイル丸っとコピーできちゃうので個人作業でもめっちゃ重宝してます。
そんな便利なBOXファイルの生成方法を共有いたします。
BOXの生成
生成方法はとっても簡単です。
コピーしたいVagrantファイルがあるディレクトリで以下コマンドを実行するだけとなります。
$ vagrant package [vm名] --output [名前.box]
[vm名]はvagrant statusで確認できます。
$ vagrant status
==> vagrant: A new version of Vagrant is available: 2.2.5 (installed version: 2.2.3)!
==> vagrant: To upgrade visit: https://www.vagrantup.com/downloads.html
Current machine states:
// ↓これ
default running (virtualbox)
The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.
これら踏まえた上での実際のコマンドは以下のとおりです。
$ vagrant package default --output my.box
==> default: Attempting graceful shutdown of VM...
==> default: Clearing any previously set forwarded ports...
==> default: Exporting VM...
==> default: Compressing package to: C:/MyProijects/LocalEnv/vagrant-100/my.box
ディレクトリ”C:/MyProijects/LocalEnv/vagrant-100″にmy.boxが生成されました!
BOXの使い方
まずは適当な場所にフォルダを作成します。
また、BOXファイルを任意のディレクトリに配置します。今回はとりあえずvagrantフォルダは以下に配置しました。
※自分は”vagrant”フォルダを作成しました。
プロンプトで作成したフォルダ配下に移動
$ cd C:/MyProijects/LocalEnv/vagrant
次にVagrantの初期化をします(Vagrantファイルの生成)
$ vagrant init
以下のようにVagrantファイルが生成されるはずです。
次に、Vagrantファイルの以下箇所を編集します。
***
# 仮想環境にアクセスする際のローカルIPの指定
config.vm.network "private_network", ip: "192.168.33.100"
***
***
# BOXファイルの指定 ※BOXファイルを設置した場所
config.vm.box = "./my.box"
***
最後にvagrant upすれば複製環境の構築が実行されます。
$ vagrant up
これでかなり開発環境構築の手間、時間が削減できそうです!