インフラ環境の自動構築は、もはや当たり前ですよね?
vagrantというVirtualBoxをラップして、chefやpuppetを利用したVMの環境自動構築をしてくれるソフトウェアがあります。
これを利用して、開発環境のセットアップを自動化すると共にVM化して、すぐにコードを書くことだけに集中できる環境を構築する状態をつくっておくことを推奨します。
プラグインを利用すれば、vagrantを通してAmazon EC2への環境構築を自動化したchefやpuppetのコードを再利用できます。
小さい環境であれば、chef-soloを利用して単独で環境構築自動化をオススメします。試しにインフラ構築の自動化を学ぶのにも今回の様な環境で学習してみてはいかがでしょうか。
vagrantのインストール
gemを利用しましょう。
gem install vagrant
boxを登録
vagrantのboxとはLinuxイメージのひな形です。
で大抵のLinuxイメージが配布されています。
vagrant box add precise64 http://files.vagrantup.com/precise64.box
とすることにより”precise64″という名前でUbuntu precise 64のイメージが登録されます。
VMを展開・構築
適当なディレクトリをつくって
vagrant init precise64
Vagrantfileというファイルができあがります。このファイルがvagrantの設定ファイルです。
(省略)
config.vm.forward_port 80, 8080 # localhost:8080 にアクセスすればVMの80番ポートに転送される
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = "../my-recipes/cookbooks" # cookbookのディレクトリを指定
chef.roles_path = "../my-recipes/roles" # roleのディレクトリを指定
chef.data_bags_path = "../my-recipes/data_bags" # data_bagsのディレクトリを指定
chef.add_recipe "mysql" # 実施するクックブックを指定
chef.add_role "web" # ロールを使用してれば指定する
chef.json = { :mysql_password => "foo" } # 必要なattributesがあれば指定
end
(省略)
とりあえず、この部分だけ設定すればchef-soloで環境構築は自動化できる。
knife cookbook create emacs -o ../my-recipes/cookbooks
とやれば、emacsという名前のクックブックひな形が作成される。recipes/default.rbへここを参考にインストールするパッケージや設定ファイルの操作を書いてあげれば良い。
簡単な一例として
package "emacs23"
と書いてやれば、emacs23がaptでインストールされる。filesやtemplateを利用して設定ファイルも配備してあげれば万全である。クックブックは配備するだけでなく、chef.add_recipeに追加するか、run_listなどで実行するクックブックとして与えてやることをお忘れなく。
VMの起動
vagrant up
とすれば、VMが起動される
SSHでのアクセス
vagrant ssh
vagrantユーザーでログインされる。
VMの停止
vagrant halt
VMの削除
vagrant destroy
chef-soloを利用してchefでの環境構築自動化をいろいろと試して見てください。
ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE) John Allspaw、Jesse Robbins、角 征典 |