入門ChefSoloに入門してHello Worldしてみた

# 準備 (vi苦手なのでnanoで)
yum -y install git nano

# chefをインストール
curl -L http://www.opscode.com/chef/install.sh | sudo bash

# knifeの初期設定(何のためにやるのかはよくわからない)
knife configure

# opscoded社が公開しているChefレポジトリのひな形を取得
git clone git://github.com/opscode/chef-repo.git
cd chef-repo/

# レポジトリ内にクックブックhelloを追加
knife cookbook create hello -o cookbooks
ここから、エディタでファイルを編集していきます。
クックブックhello内のデフォルトレシピを編集
cookbooks/hello/recipes/default.rb

Hello Worldを書きます。
#
# Cookbook Name:: hello
# Recipe:: default
#
# Copyright 2013, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#
log "Hello, World!"
localhost.jsonを作成
{
  "run_list": [
    "recipe[hello]"
  ]

}
solo.rbを作成
file_cache_path "/tmp/chef-solo"
cookbook_path ["/root/chef-repo/cookbooks"]

chef-soloを実行

sudo chef-solo -c solo.rb -j ./localhost.json
実行結果
Starting Chef Client, version 11.4.4
Compiling Cookbooks...
Converging 1 resources
Recipe: hello::default
  * log[Hello, World!] action write

Chef Client finished, 1 resources updated
おお、うまく行きました!!

後半のlocalhost.jsonやらsolo.rbやらが何のために必要なのか若干もやもやします。
(特に、レポジトリ内にあるsolo.rbの中にレポジトリへの絶対パスを書いてるところが気持ち悪いような)

たぶんさらに読み進めていくとわかってくるのでしょう。

本の第一印象

たいへん簡潔に書かれていて読みやすいです!
ありがたやありがたや。

参考:Kindle向けに『入門Chef Solo - Infrastructure as Code』を出版しました
カテゴリ: