Edited at

vagrant備忘録

More than 3 years have passed since last update.


はじめに

ドットインストールの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