[Vagrant] おべんきょう・その1

Vagrantの勉強をしているのだけど、よくわからないので整理してみる。書いて覚える。

環境構築

これは最初(Vagrantが使える状態になっていないとき)だけ行う。

以下の手順は、プロジェクト毎に行う手順。

プロジェクト用のディレクトリを作成

Vagrant の初期化

これでプロジェクトディレクトリの直下にVagrantfileが作成される。

(BOXをインストール)

BOXファイルをダウンロードして、名前をつけ、名前とBOXファイルの関係をVagrantに覚えさせる。

Vagrantに覚えさせたBOXの一覧を表示する場合は以下のコマンドを使用する。

[メモ] ゲストOSからBOXファイルを作る場合は、”vagrant package”コマンドで作れるみたい。

Vagrantfileを編集

Vagrantfileの中に以下のように記述する。

“vagrant box add 〜”をせずに、Vagrantfile中でBOX定義を記述することも可能。

Vagrantのプロビジョニング設定

Vagrantを初めて起動するときに自動で実行されるプロビジョニング用ファイル(シェルスクリプト)を用意する。

vagrantファイルを編集して、プロビジョニング用のシェルが実行されるようにする。

プロビジョニング用ファイルのパスは、Vagrantfileからの相対パスで指定できる。

[TODO] シェルスクリプトを別ファイルではなくVagrantfileに直接記述する方法もある。

ポートフォワーディング設定

ホストマシンの指定したポートへのアクセスを、ゲストマシンへのアクセスとしてフォワードする設定。

vagrantファイルを編集して、ポートフォワーディング設定を追加する。

ホスト側のポート番号を55555、ゲスト側のポート番号を80とした場合、ホストマシンのブラウザで”http://127.0.0.1:55555″にアクセスすると、ゲスト側のhttpdにアクセスがフォワード(ゲストマシンのhttpdへアクセスした結果が表示)される。

Vagrantの起動

初回に起動するときだけ、プロビジョニングが行われる。

[疑問] “vagrant up” した後でVagrantfileを書き換えた場合はどうなるのかな?

VagrantにSSH接続

ゲストマシン上の “/vagrant” ディレクトリと、ホストマシンのプロジェクトディレクトリが同期される。

プロジェクトディレクトリが “~/vagrant/project” だとしたら、ゲストマシン上で “/vagrant” を参照すれば、それはホストマシンの “/~vagrant/project” の中身。

Vagrantを使用を止める

使用を止めるには、vagrantコマンドで保留(suspend)、中断(halt)、破壊(destroy)のいずれかを指定する。

いずれの場合でも、”vagrant up”でゲストマシンを復帰させることはできるが、復帰される状態が異なる。

“vagrant suspend”はサスペンド(スリープ)状態でゲストマシンを停止させる。

“vagrant halt”はゲストマシンを停止させる。

“vagrant destroy”はゲストマシンの情報(ゲストマシン上のディスク)をすべて破棄する。