vagrantは開発環境用のVM構築と共有を簡単に行うためのVMラッパーツールであるが、ansibleを利用して開発環境の設定(プロビジョニング)も繰り返しを避けることができる。
vagrantは、プロビジョニング用の設定をVagrantfileに記述することが可能である。
今回は、プロビジョニングにansibleを利用する。ansibleはplaybookと呼ばれるyaml形式の設定ファイルを参照する。
Vagrantfileには以下のように追記する。ansibleはplaybook.ymlを参照する。
ansibleに使用するplaybookを作成する。
Vagrantfileと同じディレクトリにplaybook.ymlを入れておく。
vagrant up で playbookを利用してプロビジョニングできる。既に vagrant up 済みのVMは以下のように明示的にプロビジョニングする必要がある。
2015年6月21日日曜日
2015年6月17日水曜日
vagrantのboxを使って仮想マシンを起動する
vagrantは追加されたboxの内容にしたがって、以下のコマンドで仮想マシンの起動設定を作成することができる。
Vagrantfileが作成されるので、以下のコマンドで起動する。
起動したVMには以下のコマンドでssh接続できる。
vagrantでWeb開発環境用仮想マシンができるところまでをまとめるつもりである。
# vagrant init <box名>
Vagrantfileが作成されるので、以下のコマンドで起動する。
# vagrant up
起動したVMには以下のコマンドでssh接続できる。
# vagrant ssh
vagrantでWeb開発環境用仮想マシンができるところまでをまとめるつもりである。
vagrantのboxを追加する(vagrantコマンドで直接URLを指定してSSLエラーが出る場合)
vagrantのbox追加で指定するURLはローカルファイルでももちろん可能である。以下は、curlでローカルに保存したboxファイルをvagrantに追加する手順である。
vagrant box list で追加できているか確認できれば完了である。
vagrant box list で追加できているか確認できれば完了である。
2015年6月10日水曜日
vagrantによるdocker環境の構築
vagrantとはVMのラッパーツールである。設定ファイル(Vargrantfile)を使用してVMを起動することができ、環境構築の再現性を高めてくれる。また、Dockerが64bitOSにしか対応していないのに対して、32bitOSをサポートしているため、環境構築のホストOSへの依存度も低下する。
ここでは、vagrantのインストール及びvagrantを使ってdockerコンテナを扱う際の基礎的なコマンドについて記載する。
vagrantはパッケージでインストールする。
vagrantはデフォルトの仮想化ソフトに VirtualBox または VMWare を使うため、どちらかインストールしておく。ここでは、VirtualBoxを利用する。
また、vagrantのプラグイン dotenv をインストールする。
vagrantでVMを起動する
vagrantで起動したssh接続する
vagrantのVMのステータスを確認する
vagrantでVMを停止する
ホストとのファイル共有
synced_folderを使用してローカルマシンとVMの間で特定のディレクトリを共有する。
ソースコードやDockerfileを変更して、そのままVM上でDockerイメージをビルドするために用いる。
config.vm.synced_folder(
"../",
"/home/core/#{File.basename(File.dirname(Dir.pwd))}",
id: "vmid",
:nfs => true,
:mount_options => ['nolock,vers=3,udp'],
)
Dockerfileを書く際の基本方針
イメージを小さくすること。コンテナの起動、イメージのビルド、push、pullにかかる時間を短くすることができる。
ビルドのレイヤー数
Dockerfileには、関連するコマンドを連結(&&とバックスラッシュを利用すると、コマンドを連結できる)してビルドのステップ数を少なくする。
Vagrantfileとansibleでdockerをインストールする方法はこちら。
ここでは、vagrantのインストール及びvagrantを使ってdockerコンテナを扱う際の基礎的なコマンドについて記載する。
vagrantはパッケージでインストールする。
vagrantはデフォルトの仮想化ソフトに VirtualBox または VMWare を使うため、どちらかインストールしておく。ここでは、VirtualBoxを利用する。
また、vagrantのプラグイン dotenv をインストールする。
$ vagrant plugin install dotenv
Installing the 'dotenv' plugin. This can take a few minutes...
Installed the plugin 'dotenv (2.0.1)'!
vagrantでVMを起動する
vargrant up
vagrantで起動したssh接続する
vargrant ssh
vagrantのVMのステータスを確認する
vagrant status
vagrantでVMを停止する
vagrant halt
ホストとのファイル共有
synced_folderを使用してローカルマシンとVMの間で特定のディレクトリを共有する。
ソースコードやDockerfileを変更して、そのままVM上でDockerイメージをビルドするために用いる。
config.vm.synced_folder(
"../",
"/home/core/#{File.basename(File.dirname(Dir.pwd))}",
id: "vmid",
:nfs => true,
:mount_options => ['nolock,vers=3,udp'],
)
Dockerfileを書く際の基本方針
イメージを小さくすること。コンテナの起動、イメージのビルド、push、pullにかかる時間を短くすることができる。
ビルドのレイヤー数
Dockerfileには、関連するコマンドを連結(&&とバックスラッシュを利用すると、コマンドを連結できる)してビルドのステップ数を少なくする。
Vagrantfileとansibleでdockerをインストールする方法はこちら。
登録:
投稿 (Atom)