WindowsでVagrantを導入のまとめ
Vagrantについて
VagantはVirtualBoxのフロントエンドとして使用することができるruby製のツールで、コマンドラインから仮想OSを管理できます。
つまり、VirtualBoxを管理できるツールということ
導入メリット
- チーム間でテスト環境を同一で統一出来る
- チーム間でテスト環境を準備する時間が省ける
※個人で使用するのも含め、これが一番大きいかもしれない - スナップショットでその時点のバックアップを取れたりするのですぐに開発環境を戻せたりなどの恩恵が受けられる
※VirtualBoxの機能 - macでもwindowsでも開発環境の違いが関係なくなる
- railsとか動作が環境依存するようなアプリケーションが本番と同じ設定で動作する
導入手順
- VirtualBoxの左のDownloadsから「VirtualBox x.x.xx for Windows hosts」をダウンロードして、インストール
- VagrantのDownloadから「WINDOWSUniversal (32 and 64-bit)」をダウンロードしてインストール
- コマンドプロンプトで下記のコマンドを打ち、バージョンが帰ってきたらインストール成功
vagrant -v
-
vagrantboxからCentOSのboxのURLをコピーする
※CentOSの中でも一番上にある「CentOS 7.0 x64 (Minimal, VirtualBox Guest Additions 4.3.28, Puppet 3.8.1)」を選んだ
※PuppetはChefやAnsibleのようなシステム自動構築ツールでPuppetを使わずChefやAnsibleを使ってもいい - 下記のコマンドでboxを追加する
※コマンドの解説:vagrant box add タイトル URL
vagrant box add centos https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
- boxの設定ファイルを作る
※コマンドの解説:vagrant init box名
※設定ファイルを修正することでIPなどの設定を変更できる
※Vagrantfile(設定ファイル)から起動するので「Vagrant\centos\Vagrantfile」のようにフォルダを分けた方が良いかもしれない
vagrant init centos
- boxを起動する
※vagrant initしたカレントディレクトリで実施
※毎回コマンドを打って起動するのも大変なのでバッチファイルでも作っておく
vagrant up
- tera termでssh起動
※sshのIPとportはvagrant upした際に表示される。ちなみにrootのパスワードもvagrant
※VirtualBoxを起動するとcentosが実行されているのが分かる
※毎回ログインするのも面倒なのでteratermのログインマクロでも作っておく
ホスト:127.0.0.1
ポート:2222
ユーザ名:vagrant
パスワード:vagrant
boxのバックアップと復元(box自体をエクスポートして削除してインポートするまで)
壊したり、復元したりすると思うのでbox自体をエクスポート、削除、インポートする手順
- 下記コマンドでboxを停止
※停止したいboxのVagrantfileのカレントディレクトリに移動して実行
vagrant halt
- 下記コマンドでboxファイルをエクスポート
vagrant package
- 下記コマンドでboxを削除
※削除したいboxのVagrantfileのカレントディレクトリに移動して実行
vagrant destroy
- 下記コマンドでbox一覧から削除
※カレントディレクトリ内にあるVagrantfile、.vagrantを削除しても最終データがきちんとインポート出来た
vagrant box remove centos
- 下記コマンドでboxをインポート
※コマンド解説:vagrant box add 新規作成ボックス名 バックアップファイル
vagrant box add centos package.box
- boxの設定ファイルを作る
vagrant init centos
- boxを起動する
vagrant up
boxのスナップショット(vagrant1.8から)
※vagrant destroyしてしまうとスナップショットも失われてしまうので注意すること(Vagrantfileファイル、.vagrantフォルダを残していたとしても)
- 下記コマンドでboxを停止
vagrant halt
- 下記コマンドでスナップショットを取る
vagrant snapshot save 20160702_1156
- 下記のコマンドでスナップショットが取れているかを確認
vagrant snapshot list
- 下記のコマンドでスナップショットを復元
vagrant snapshot restore 20160702_1156
- 下記のコマンドでスナップショットを削除
vagrant snapshot delete 20160702_1156
よく使うコマンド
-
vagrant box remove box名
※vagrantのbox一覧からboxを削除 -
vagrant box list
※追加されたvagrantのbox一覧 -
vagrant status
※実行しているbox一覧 -
vagrant up
※VirtualBoxに登録して、Vagrantfileからboxを起動する -
vagrant halt
※VirtualBoxのboxを電源停止 -
vagrant destroy
※VirtualBoxからboxを削除