Vagrantメモ
メモです。日々更新追加されます。
外部アクセス用IP
Vagrantfileの
config.vm.network "private_network", ip: "192.168.33.10"
のコメントを外す。
あとはfirewallでsshやhttpが許可されているなら、上記ipでアクセスが可能となる。
IPは変えても良い。
ローカルホストマシンとの同期
rsyncできます。
Vagrantfileに以下を設定
config.vm.synced_folder "<同期元>", "同期先", type: "rsync", rsync__exclude: ["Vagrantfile", ".git/", "vendor/"]
同期元は、ローカルマシン、WindowsとかMacとか。人による。
同期先はVagrantで立ち上げたbox環境。
rsync__excludeは同期させたくないファイルタイプが指定できます。
▼設定例
config.vm.synced_folder "./", "/usr/share/nginx/html", type: "rsync", rsync__exclude: ["Vagrantfile", ".git/", "vendor/"]
上記は、ローカルのカレントディレクトリをホストマシンのドキュメントルートと同期を取っている。
これで、カレントディレクトリで例えば、以下のindex.htmlを作成し、
<html>
<body>
hoge
</body>
</html>
Vagrantが起動している状態で、かつVagrantfileがあるディレクトリで
vagrant sync
コマンドを実行すれば、ホストのファイルがゲストの同期先に同期されます。
同期がとれたので、
http://192.168.33.10/
でhogeが表示されます。
毎回手で同期とるのが面倒なら
vagrant sync-auto
で常駐監視されます。
VM環境のbox保存
vagrant package
で構築したVM環境をpackage.boxで保存できます。このboxファイルを他人に配布すれば、
あなたが頑張って構築した環境をそのまま渡せます。
受取人は
vagrant box add hoge package.box
とすればboxファイルが追加されます。
あとはinitしてupすれば、使えます。
これはPJ内で開発環境構築するのにも便利ですね。