チームで開発するときにVagrantで作成した環境を共有するには、boxの「パッケージ化」を行います。
また、プレーンな状態のboxに設定を加えた仮想マシンを再活用したい場合もあります。
その時にも、設定状態をパッケージ化しておけば使いまわすことができ1から設定する必要がありません。
Vagrantのboxを作成する方法を解説します。
目次
Vgrantのboxを作成
今回は、「仮想マシンにWebサーバーApacheをインストールしブラウザからWEBページを表示確認する方法」で作成した仮想マシンをベースにパッケージ化する方法を例に説明します。
構成
- OS:CentOS Linux release 7.1.1503 (Core)
- Webサーバー:Server version: Apache/2.4.6 (CentOS)
- Apacheの設定:Apacheの自動起動設定、ファイヤーウオールを切る
仮想マシンのディレクトリに移動
↓まず、ローカルパソコン側で、仮想マシンのVagrantfile のあるディレクトリに移動します。
cd vagrant/centos7.0/
パッケージ化
↓パッケージ化するには以下のコマンドを実行します。
vagrant package
↓パッケージ化には時間がかかるので、処理を待ちます。
vagrant package
==> default: VM not created. Moving on...
↓lsコマンドでフォルダの中を確認してみましょう。
$ls
Vagrantfile package.box
「package.box」 というファイルが作成できました。
ボックスを登録
↓以下のコマンドで名前を指定してボックスを登録します。
今回は「my_box」という名前で登録してみます
vagrant box add [box名] package.box
vagrant box add my_box package.box
↓コマンドを実行すると、ボックスに登録が開始されるので待ちます。
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'my_box' (v0) for provider:
box: Unpacking necessary files from: file:///Users/takanori/vagrant/my_box/package.box
ボックスのリストを確認
↓以下のコマンドでボックスのリストに登録できたか確認します。
vagrant box list
my_box (virtualbox, 0)
「my_box」が追加ができたことが確認できました!
これで、独自に設定したboxとして使うことができます。
追加したboxの使い方
追加したboxは仮想マシンを立ち上げるときに使うことができます。
「my_box」から仮想マシンを立ち上げ、設定出来ている状態か確認してみます。
↓ディレクトリの準備
mkdir -p vagrant/sample_vm
cd vagrant/sample_vm/
↓ボックスの追加
vagrant init my_box
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
↓Vagrantfileの確認
ls
Vagrantfile
↓vagrant起動
vagrant up
↓仮想マシンに接続
vagrant ssh
↓仮想マシンに接続できたら、WEBサーバーの状態を確認してみましょう。
httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Apr 12 2017 21:03:28
↓Apacheの自動起動設定状態も確認してみます。
chkconfig
このように追加したWebサーバーや設定内容が保持されてboxが作成できていることが確認できます。
box の削除
↓box を削除する方法も説明しておきます。以下のコマンドを実行します。
vagrant box remove [box名]
↓例えば、今回の「my_box」を削除する場合、以下のコマンドになります。
vagrant box remove my_box
↓なお、削除コマンドを実行しても、Boxの実態「~/.vagrant.d/boxes/」ディレクトリには残っています。
ls ~/.vagrant.d/boxes/
my_box
↓これを完全に削除したい場合は、以下のコマンドを実行します。
rm -rf ~/.vagrant.d/boxes/][box名]
最後に
Vagrantのboxを作成する方法を解説しました。