仮想マシンスケールセットのインスタンスのタイムゾーンを日本時間に変更したいのに、仮想マシンスケールセットで動かすためのイメージを作るとき Sysprep で一般化したら、タイムゾーンが UTC になってしまう。
応答ファイルでタイムゾーンを設定できたはず。カスタム応答ファイルを作ればいけるかと思いきや、ドキュメントによると、Azure はカスタム応答ファイルをサポートしていないときた。困った。
起動時に任意のスクリプトを実行するしかない。フックポイントがあるか調べたところ、CustomScript 拡張の存在を知った。 Terraform は仮想マシンスケールセットの拡張もサポートしている。
resource "azurerm_windows_virtual_machine_scale_set" "example" { # ... } resource "azurerm_virtual_machine_scale_set_extension" "custom_script" { name = "customscript-example" virtual_machine_scale_set_id = azurerm_windows_virtual_machine_scale_set.example.id publisher = "Microsoft.Compute" type = "CustomScriptExtension" type_handler_version = "1.10" settings = jsonencode({ "commandToExecute" = "tzutil /s \"Tokyo Standard Time\"" }) }
こいつでタイムゾーンを変更できた。めでたしめでたし。