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 は検索するといくらでも出てきます。
ざっとググった範囲でもこれだけ見つかりました。

chef の紹介記事を読むと cookbook を書くものが多いのですが、
幸せに chef を使うコツのひとつはなるべく cookbook を書かない(公開されているものを使う)だと思っているので、
できるだけ車輪の再発明をしないよう、共有してやっていけるといいですね。

そのためには、timezone cookbook の作者さんには、新しいバージョンを出してもらえるといいのですが…。