chef cookbook 紹介シリーズ(1): timezone
ネタに困ったので、僕が使っている chef cookbook をひとつずつ紹介していくことにしました。
今日は timezone です。
opscode community で公開されている cookbook は、ストレートな名前が付いているのでほとんど説明不要なのですが、
この timezone も読んで字のごとく、タイムゾーンを設定するために用いられる cookbook です。
使い方は簡単です。timezone を run_list に追加し、"tz" に利用したいタイムゾーンを指定します。
僕の場合は Asia/Tokyo に設定するので、次のように設定します。
{ "tz" : "Asia/Tokyo", "run_list": [ "recipe[timezone]" ] }
はい、簡単ですね。
RedHat 系の罠
…と思いきや、実は一個問題があります。この timezone cookbook は Debian/Ubuntu でしか動作しません。
Debian 系 OS では /etc/timezone を書き換えるのに対して、
RedHat 系 OS では /etc/localtime をタイムゾーンデータへの symlink にする必要があるからです。
いろんな人がコメントでツッコミを入れたり、github にイシューを立てたり、pull request を送ったりしているのですが、
ほとんど反応がなく、新しいバージョンが出る気配がありません。
そこで、僕は fork 版の timezone を利用しています。
これを利用すると RedHat 系の環境でもうまくタイムゾーンを設定できるようになります。
たかがタイムゾーンの設定のはずなのですが、環境によって躓くこともあるのでご注意ください。
他にもこんな cookbook
timezone に関わる cookbook は検索するといくらでも出てきます。
ざっとググった範囲でもこれだけ見つかりました。
- https://github.com/winhamwr/chef-timezone
- https://github.com/camelpunch/chef-timezone
- https://github.com/binarymarbles/chef-timezone
- https://github.com/jlbfalcao/chef-timezone
- timezone-ii
chef の紹介記事を読むと cookbook を書くものが多いのですが、
幸せに chef を使うコツのひとつはなるべく cookbook を書かない(公開されているものを使う)だと思っているので、
できるだけ車輪の再発明をしないよう、共有してやっていけるといいですね。
そのためには、timezone cookbook の作者さんには、新しいバージョンを出してもらえるといいのですが…。