VagrantのBOXについて解説

はじめに(boxとは)

boxとはvagrant環境のパッケージ形式のことで、boxを使用することで誰もが同一環境を簡単に構築することが出来るようになります。

目的の環境のboxの探し方

Vagrant Cloudでの検索方法

利用頻度が高い環境のboxは、vagrantを開発しているHashiCorp社が運営しているサイト(Vagrant Cloud)で公開boxカタログとして誰でも利用可能となっています。

Vagrant Cloudの公開boxカタログはRubyやPythonなどを即起動、実行できるようなboxだけではなく、主要OSがベースとして存在しますので、相当ニッチなニーズでない限りは希望するboxは存在するのではないでしょうか。

boxの検索はキーワードとboxが対応している仮想化環境プラットフォームを指定することで行います。

例えばVirtualBoxに対応したCentOS7のboxを探したい場合は、以下のような指定をして検索を実行します。

Vagrant box 01

なお、Vagrant Cloudは自分で作成したboxを追加・共有する機能もありますので、興味がある方はそちらも試してみてはいかがでしょうか。

注意事項

公開カタログのサイトとしてhttp://www.vagrantbox.es/を紹介しているサイトを見かけますが、こちらは有志が運営しているサイトでboxの安全性も保証されていない為、利用しないことをオススメします。

公開カタログからBoxを追加する方法

Boxの追加とは

Vagrantは公開カタログboxをローカル環境に追加(コピーみたいなイメージ)して、ローカル環境内のboxを元に仮想環境を構築します。

boxの追加はめちゃめちゃ簡単で以下のコマンドを実行するだけで完了します。

vagrant box add USER/BOX

※USER/BOX部分は後述を参照

なお、巷の技術系サイトでinitコマンドで初期化に加えてbox追加も実行してくれるような記述を見かけたりしますが、initコマンドではbox追加はできませんのでご注意ください。(HashiCorpのVagrant公式サイトも読み間違えるとinitコマンドでbox追加が出来るように見えます・・・)

Vagrant Cloudのboxを追加する具体的な手順

Vagrant Cloudで追加したいboxを見つけたら、該当のカタログをクリックします。

Vagrant box 02

カタログの詳細画面へ遷移したら、Vagrantfile/Newのタブの「New」の方を選択します。

選択すると、この初期化する為のコマンドが表示されますので、init以降をコピーします。

Vagrant box 03

ターミナルを開いて$ vagrant box add USER/BOXのUSER/BOXをコピーした文字列と置き換えて実行してください。

選択したboxが複数の仮想化環境プラットフォームに対応している場合、以下のようにプロバイダを選択する必要があるので、自分の仮想化環境を選択してください(例えばVirtualBoxの場合は"3″)。

This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.
1) hyperv
2) libvirt
3) virtualbox
4) vmware_desktop

box: Successfully added box 'centos/7’ (v1905.1) for 'virtualbox’!のメッセージが表示されたら成功です。

box addコマンドでエラーが発生した場合

box addコマンド実行で以下のエラーが発生することがあります。

The box 'centos/7' could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp's Vagrant Cloud, please verify you're logged in via
`vagrant login`. Also, please double-check the name. The expanded
URL and error message are shown below:
URL: ["https://vagrantcloud.com/centos/7"]
Error: SSL certificate problem: self signed certificate in certificate chain

※vagrant box add centos/7を実行したケース

このエラーメッセージが表示された場合、SSL証明書のチェックを実施しないオプション(–insecure)をつけてエラーを回避します。

vagrant box add USER/BOX  --insecure

終わりに

VagrantのBoxについての一通りの説明は以上となります。

また、追加したboxはvagrant box listコマンドで確認可能ですので、もし良ければそちらでの確認もオススメします。