chefからwindowsのバッチコマンドを実行し、タイムゾーンを変更する方法です。
前提条件
- windows版chefクライアントが対象マシンにインストール済みであること
- WIndows Server 2012
レシピに下記にように記述します。
タイムゾーン変更とNTP参照先も同時にセットするレシピです。
batch "NTP Setting" do code <<-EOH tzutil /s "Tokyo Standard Time" w32tm /config /update /manualpeerlist:<NTPサーバ> /syncfromflags:manual EOH end
この状態だと、W32Timeが起動していないため、エラーで終了してしまいます。
そのため、レシピに下記のように変更します。
service "W32Time" do action [ :enable, :start ] end batch "NTP Setting" do code <<-EOH tzutil /s "Tokyo Standard Time" w32tm /config /update /manualpeerlist:<NTPサーバ名> /syncfromflags:manual EOH end
あとはchef-soloなり、knif-solo等で、レシピを実行することで変更されます。
AWSのWindows ServerのタイムゾーンがUTCで起動してくるため、上記レシピで流し混んでJSTに切り替えるようにしました。
Chefって便利ですね!PowerShellやバッチもとっても便利です。