はじめに
ドットインストールのVagrant入門をみて、Vagrantを覚えた時のメモ。
環境は、mac osX / VirtualBox / Vagrant です。
ドットインストール
http://dotinstall.com/lessons/basic_vagrant
vagrant日本語ドキュメント
http://lab.raqda.com/vagrant/index.html
インストール
以下のサイトから最新のものをインストールします。
私は、VirtualBox4.3.20、Vagrant1.6.5でした。
・VirtualBox
https://www.virtualbox.org/
・Vagrant
https://www.vagrantup.com/
boxの取得
box公開サイト
https://vagrantcloud.com/
$ vagrant box add [box名] [box URL]
boxの確認
$ vagrant box list
初期化
以降のコマンドは、このディレクトリで実行する。
$ mkdir hoge
$ cd hoge
$ vagrant init [box名]
起動等
$ vagrant status # ステータス確認
$ vagrant suspend # 保留状態にする
$ vagrant resume # 再開(suspendからの復旧)
$ vagrant halt # シャットダウン
$ vagrant up # 起動
$ vagrant reload # Vagrantfileの修正を反映
$ vagrant destroy # 削除
ssh接続
ログインユーザとパスワードはvagrant
となり、sudo権限がある。
vagrant up
していること。
$ vagrant ssh
共有ディレクトリ
ホストOSのVagrantfileのあるディレクトリとゲストOSの/vagrant
は共有ディレクトリになっていて、簡単にファイルをやりとりできる。
プロビジョニング
VagrantfileにゲストOSの設定や自動実行させたいコマンドを記述できる。
$ vi Vagrantfile
以下を編集
・ipアドレス
config.vm.network "private_network", ip: "192.168.33.10"
※自分以外のPCからも利用した場合、publicとする。
config.vm.network "public_network", ip: "192.168.33.10"
・メモリ
vb.customize ["modifyvm", :id, "--memory", "1024"]
※vagrant1.7.2のときは、以下のように記述した。
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
end
・コマンド実行
config.vm.provision :shell, :inline => "[コマンド]"
・shell実行
config.vm.provision :shell, :path => "[実行ファイル]"
実行ファイルの例
sudo yum -y install httpd
sudo service httpd start
sudo chkconfig httpd on
・起動時にプロビジョニングを実行
$ vagrant up --provision
・プロビジョニング反映
$ vagrant reload --provision
box作成
Vagrantfileのある場所で実行。
$ vagrant package
プラグイン
$ vagrant plugin list # プラグイン確認
$ vagrant plugin install [プラグイン名] # インストール
$ vagrant plugin uninstall [プラグイン名] # アンインストール
saharaプラグイン
sandbox on
した時点からの変更を破棄することができる。
$ vagrant sandbox status # sandboxモード確認
$ vagrant sandbox on # sandboxモード開始
$ vagrant sandbox off # sandboxモード終了
$ vagrant sandbox commit # 変更の反映
$ vagrant sandbox rollback # 変更の破棄
commit
は起動中に実行すると時間がかかる。
vagrant suspend
してから実行すると早くなる。
$ vagrant suspend
$ vagrant sandbox commit