2013/12/15
Tag :
chef
chefを使ってみる
環境の下準備
Macに入っているRubyのバージョンがberkshelfをインストールする際に古いと怒られる。
その辺までのRbenvのインストールなどは
AWS EC2サーバに対するknife solo実行環境構築手順 on Mac OS Xを一から整理してみる | Developers.IO
http://dev.classmethod.jp/cloud/knife-solo-env-prepare-memo/
を参考にした。
Vagrant
ssh出来るようにする
vagrant ssh-config --host hostname >> ~/.ssh/config
cpanmのインストールでこけるときは
yum -y install perl-core
あたりを試してみる
cookbookを使ってみる
cookbook色々
Opscode Community
http://community.opscode.com/cookbooks/
hjfuji/mtos-cookbook
https://github.com/hjfuji/mtos-cookbook
ChefでApache、PHP、MySQLをインストール
Vagrantの使い方 - Qiita [キータ]
http://qiita.com/skinoshita/items/57ac059ff8b1008f5e1d
test_vagrant5 でSSHできる様にする
$ vagrant ssh-config --host test_vagrant5 >> ~/.ssh/config
作業環境
$ cd ~/test_vagrant/
$ knife solo init chef-repo && cd chef-repo
-repo
Creating kitchen...
Creating knife.rb in kitchen...
Creating cupboards...
Setting up Berkshelf...
test_vagrant5 で操作出来るようにする
$ knife solo prepare test_vagrant5
色々ずらずらとインストールされる。
cookbookを作る
$ knife cookbook create lamp -o site-cookbooks
cookbook を修正
$ vi site-cookbooks/lamp/recipes/default.rb
以下を追記
# stop iptables
service "iptables" do
action [:stop, :disable]
end
# install apache
%w{httpd httpd-devel}.each do |pkg|
package pkg do
action :install
end
end
# install php
%w{php php-common php-devel php-mbstring php-xml php-pear php-mysql}.each do |pkg|
package pkg do
action :install
end
end
# install mysql
%w{mysql-server mysql-devel}.each do |pkg|
package pkg do
action :install
end
end
# service configuration
service "httpd" do
supports :status => true, :restart => true, :reload => true
action [:enable, :start]
end
service "mysqld" do
action [:enable, :start]
end
json修正
$ vi nodes/test_vagrant5.json
以下の様に修正。
{
"run_list":[
"lamp"
]
}
vagrantファイルの修正
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = "chef-repo/site-cookbooks"
chef.roles_path = "chef-repo/roles"
chef.data_bags_path = "chef-repo/data_bags"
chef.add_recipe = "lamp"
# You may also specify custom JSON attributes:
chef.json = {}
end
仮想マシンを再起動
$ vagrant provision
$ knife solo prepare test_vagrant5
みたいなコマンドうつけど、 test_vagrant5 のところは、
$ vagrant ssh-config --host test_vagrant5 >> ~/.ssh/config
で追加したホストだとおもうんだけど、ここの名前が違うとかはとりあえず意識しなくてもいいのかな??
できあがった作業フォルダ内の Vagrantfile と cookbook だけを共有しておくとかでいいのか。コピペして立ち上がったみたいだし。
参考リンク
- AWS EC2サーバに対するknife solo実行環境構築手順 on Mac OS Xを一から整理してみる | Developers.IO
http://dev.classmethod.jp/cloud/knife-solo-env-prepare-memo/ - 今っぽい Vagrant + Chef Solo チュートリアル - Qiita [キータ]
http://qiita.com/taiki45/items/b46a2f32248720ec2bae - Opscode Community
http://community.opscode.com/cookbooks/ - Vagrantで作るChefの簡単レシピ
http://yungsang.com/vagrant/ - Vagrantの使い方 - Qiita [キータ]
http://qiita.com/skinoshita/items/57ac059ff8b1008f5e1d
- morafabio/vagrant-php-development-box
https://github.com/morafabio/vagrant-php-development-box