TIL

Today I Learned. 知ったこと、学んだことを書いていく

ボックス - 入門 - Vagrant

この記事は Vagrantの公式ページの Getting Started- Vagrant をグーグル翻訳したものです。多少、自分なりに再翻訳しています。


仮想マシンを1から構築するのではなく、Vagrantはベースイメージを複製して、仮想マシンを構築することですばやく環境を構築できる。

このベースイメージのことをボックス(boxes)と呼ぶ。

Vagrantfileを作成した後の最初のステップとして、Vagrant環境で使うボックスの指定を行う。


ボックスのインストール

getting started overview pageでコマンドを実行した場合にはボックスは既にインストールされているため、以下のコマンドを実行する必要はない。

しかし、ボックスの管理方法の詳細について、このセクションを読む価値はある。

vagrant box addVagrantにボックスが追加される

名前が付けられてボックスが格納されるため、複数の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


目次