ボックス - 入門 - Vagrant
この記事は Vagrantの公式ページの Getting Started- Vagrant をグーグル翻訳したものです。多少、自分なりに再翻訳しています。
仮想マシンを1から構築するのではなく、Vagrantはベースイメージを複製して、仮想マシンを構築することですばやく環境を構築できる。
このベースイメージのことをボックス(boxes)
と呼ぶ。
Vagrantfile
を作成した後の最初のステップとして、Vagrant環境で使うボックスの指定を行う。
ボックスのインストール
getting started overview pageでコマンドを実行した場合にはボックスは既にインストールされているため、以下のコマンドを実行する必要はない。
しかし、ボックスの管理方法の詳細について、このセクションを読む価値はある。
vagrant box add
でVagrantにボックスが追加される
名前が付けられてボックスが格納されるため、複数のVagrant環境で再利用できる
まだボックスを追加していない場合、以下のコマンドを実行する
$ vagrant box add hashicorp/precise64
このコマンドを実行するとHashiCorp’s Vagrant Cloud box catalogからhashicorp/precise64
という名前のボックスがダウンロードされる。
ボックスを追加するのはHashiCorp's Vagrant
からダウンロードするのが一番簡単
そのほかに、ローカルファイルやカスタムURLなどからもボックスの追加はできる。
ボックスはカレントユーザーのグローバルに格納される。
そのため、vagrant init
を実行するときにボックスを指定しても、そのイメージをクローンするため、ベースイメージには影響はない。
つまり、hashicorp/precise64ボックスを元に作成したプロジェクトAとBがあった場合、Aにファイルを追加しても、Bにはファイルは追加されない
ボックスはユーザー名とボックス名の2つで区切られている。
上記の例では、ユーザー名はhashicorp
、ボックス名はprecise64
となっている。
また、URLやローカルファイルパスを使用してボックスを指定することもできるが、ここでは説明しない。
ボックスごとの標準的な名前空間はない。
ubuntu
という名前空間が必ずUbuntuのボックスである保証はないということ。
Vagrant Cloud上の名前空間は、GitHub上の名前空間と同じように動作する。GitHubのサポートチームがほかのリポジトリ内のissueを支援できないのと同じようにHashCorpのサポートチームは第三者の公開ボックスを手助けすることができない
ボックスを使用する
Vagrantにボックスが追加されたので、プロジェクトがそれをベースとして使うように設定する必要がある。
Vagrantfileを次のように変更する
Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise64" end
この場合の"hashicorp/precise64"
はボックスを追加したときの名前と一致していないといけない。
config.vm.box
で使用するボックスを指定する。
もし、指定したボックスが追加されていなかった場合、実行時に自動的にダウンロードされる。
config.vm.box_version
を記述することでボックスのバージョンを指定できる。
Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise64" config.vm.box_version = "1.1.0" end
config.vm.box_url
を記述することでボックスのURLを指定できる。
Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise64" config.vm.box_url = "http://files.vagrantup.com/precise64.box" end
次のセクションではVagrant環境を立ち上げて触ってみる。
より多くのボックスを見つける
この入門ガイドでは"hashicorp/precise64"のボックスのみを使用する。
しかし、入門ガイドを終了した後によく聞かれるのが「ほかのボックスはどこにあるのですか?」だ。
ほかのボックスを見つける最良の方法はHashiCorp’s Vagrant Cloud box catalog
HashiCorp’s Vagrant Cloudには素晴らしい検索機能もある。
HashiCorp’s Vagrant Cloudは無料のボックスを探す以外に、独自のボックスをホストすることもできる。
次のステップ
今回は、最初のVagrantボックスを正常にダウンロードし、そのボックスを利用するようにVagrantfileに設定した。
次回はSSH経由でVagrantマシンを立ち上げ、アクセスする方法を学ぶ
次回: 起動とSSH
参考文献
Boxes - Getting Started - Vagrant by HashiCorp