@yandoさんから下記を教えてもらったのでやってみた。
@komagata timezoneクックブックでJapanに合わせると幸せになれますよ。UTCだと朝10時にバックアップが走ってマズーかも
— Yusuke Ando (@yando) August 2, 2013
Engine Yard Cloudでカスタムレシピを使う
本家に日本語の記事があります。
Chef レシピによる環境のカスタマイズ : Engine Yard Developer Center
最初全体像がつかめなかったんですが、要は環境毎にrecipeを保存してるサーバーがどこかにあって、アプリのコードとは別に、カスタマイズしたrecipesをey recipes
コマンドでそこにアップできるそうです。
timezoneの変更
EYCのinstanceに入ってtimezoneを確認してみるとUTCになっています。$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 25 May 17 19:13 /etc/localtime -> ../usr/share/zoneinfo/UTC
$ date
Sun Aug 4 02:54:45 UTC 2013
timezoneのrecipeはengineyardが用意してるrecipeに元々あるので、それを読み込んで変数を変更してやればいい。(recipeはforkして使う)
% git clone git@github.com:fjordllc/ey-cloud-recipes.git
% cd ey-cloud-recipes
% git diff -U0
diff --git a/cookbooks/main/recipes/default.rb b/cookbooks/main/recipes/default.rb
index 5bbd736..f9d39b0 100644
--- a/cookbooks/main/recipes/default.rb
+++ b/cookbooks/main/recipes/default.rb
@@ -148,0 +149,2 @@
+
+include_recipe "timezone"
diff --git a/cookbooks/timezone/recipes/default.rb b/cookbooks/timezone/recipes/default.rb
index e62ec33..b0de8de 100644
--- a/cookbooks/timezone/recipes/default.rb
+++ b/cookbooks/timezone/recipes/default.rb
@@ -4 +4 @@
-timezone = "UTC"
+timezone = "Asia/Tokyo"
僕はsunzi派ですがchefも触っておいて良かった。
ey recipes
でupload, applyする。
% ey recipes upload -e jp_production
Loading application data from Engine Yard Cloud...
Recipes in cookbooks/ uploaded successfully for jp_production
% ey recipes apply -e jp_production
Loading application data from Engine Yard Cloud...
Uploaded recipes started for jp_production
ちゃんとtimezoneが変わってるかどうか確かめる。
$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 30 Aug 4 12:06 /etc/localtime -> /usr/share/zoneinfo/Asia/Tokyo
$ date
Sun Aug 4 12:08:20 JST 2013
うん。変わってる。DBサーバーの方もちゃんと変わってました。appサーバーだけ変更する場合にはroleを指定するとか何かあるんでしょう。多分。
これってTokyoリージョン使う場合は必須の作業ですね。
誰かがハマったり、見つけた運用が積み重なってできた環境。