edo1z blog

プログラミングなどに関するブログです

EC2でChef使ってみる

OSはEC2のAmazonLinuxです。

Chefのインストール

curl -L https://www.opscode.com/chef/install.sh | sudo bash

・Chefでは、コード化された手順書あるいは、サーバの状態をレシピと呼びます。 ・クックブックはレシピの入れ物です。 ・クックブックを含む実行に必要な一連のファイルを入れる入れ物もあり、それはリポジトリとかキッチンと呼ばれます。 ・Chefを始めるには、最初にリポジトリを作成します。リポジトリは特定のシステムに1個くらいつくるイメージだそうです。

リポジトリ(キッチン)の作成

git clone git://github.com/opscode/chef-repo.git

knifeの設定ファイルの作成

knife configure

これだけです。あとはデフォルトでEnterでOKということです。

knifeでクックブック作成

cd chef-repo
knife cookbook create hello -o cookbooks

これでhelloというクックブックをcookbooksディレクトリに作成します。

レシピの編集

package "httpd" do
  action :install
end
service "httpd" do
  supports :status => true, :restart => true, :reload => true
  action [ :enable , :start ]
end

jsonファイルと、solo.rbファイルを作る

localhost.json

{
        "run_list": [
                "recipe[hello]"
        ]
}

solo.rb

file_cache_path '/tmp/chef-solo'
cookbook_path ['/home/ec2-user/chef-repo/cookbooks']

lolcahost.jsonとsolo.rbはどこに置いてもいいみたいだけど、リポジトリ直下に入れておく。

chef soloの実行

sudo chef-solo -c solo.rb -j ./localhost.json

これで、アパッチがインストールされて起動した。