以下全ても●みち風に書いたメモ
皆さんおはようございます。
ryurock@githubです。
フガすけ(14歳)
timezoneの設定変えたいっす
今日はそんなtimezoneを変更する簡単なcookbookをknife-soloでご紹介したいと思います。
レシピ作成時間
約2分
環境
- mac-osx(ホストOS)
- centos6.4-x86-minimal (ゲストOS)
事前準備に必要なもの
- virtualbox
- ruby 1.9.3p327 (rbenv) ※1.9.3-p286でもいけた
- chef ※入れていない方は
gem install chef
とshellから打ってください - vagrant ※入れていない方はchef-soloで使用するvirtualbox(vagrant)をveeweeを使用して作るを参考に入れておいてください
- git
- knife-soloのセットアップ ※やっていない方は今日作りたくなる簡単cookbook [Kim'sキッチン] yumsetup(yum-fastestmirrorにyum update添え)の前準備を参考にしてやっておいてください。
参考にしたサイト(書籍)
[その1] レシピ名を決める
今回のレシピ名はtimezoneで行きましょう
cd chef-repo
knife cookbook create timezone -o site-cookbooks
[その2] chef-repo/timezone/recipes/default.rbを編集
chef-repo/timezone/recipes/default.rb
template "/etc/sysconfig/clock" do
notifies :run, "execute[timezone_update]", :immediately
end
execute "timezone_update" do
command "cp /usr/share/zoneinfo/Japan /etc/localtime"
action :nothing
end
[その3] timeozoneの設定をtemplateに書く
シンプルです。
chef-repo/timezone/templates/default/clock.erb
ZONE="Asia/Tokyo"
やっていることは
- timezoneの設定をコピー
- /etc/sysconfig/clockを日本時間に変更
です。
Chef Resourcesを使用した
で実行します。
[その4]rbenv cookbookをリモート側で実行する設定を追加
vim chef-repo/nodes/{接続名称(任意)}.json
{"run_list":[
"timezone"
]}
run_listをすでに記載している場合は追記でお願いします。
またrbenvのインストールのみで問題ないならrbenvだけでも問題ないです。
[その5] リモート側に実行依頼をする
cd chef-repo
knife solo cook {接続名称(任意)}
今日はこれで決まり「timezone」の完成です
簡単にtimezoneの設定が変更できますね。
厳密にやりたい場合はattibuteなどもつかってみてください。
ソースをgithubに置いてあります。
https://github.com/ryurock/chef-timezone