chefからバッチ操作し、タイムゾーンを変更する

chefからバッチ操作し、タイムゾーンを変更する

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

Windowsカテゴリの最新記事