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やバッチもとっても便利です。

 
	 
			 
			