Проблема с расширением Terraform Azure

Получение этой ошибки при запуске приложения Terraform к модулю, который я создал для запуска виртуальной машины Azure Windows.

Error: Error applying plan:

1 error occurred:
        * module.vm-windows.azurerm_virtual_machine_extension.test: 1 error occurred:
        * azurerm_virtual_machine_extension.test: Code = "VMExtensionProvisioningError" Message = "VM has reported a failure when processing extension 'hostname'. Error message: \"Finished executing command\"."

Вот мой код для создания и расширения виртуальной машины

resource "azurerm_virtual_machine" "vm" {
  count                            = "${length(var.vm_name_suffix)}"
  name                             = "${var.vm_name_prefix}${element(var.vm_name_suffix, count.index)}"
  location                         = "${var.location}"
  resource_group_name              = "${var.rg_name}"
  network_interface_ids            = ["${element(azurerm_network_interface.nic.*.id, count.index)}"]
  vm_size                          = "${var.vm_size}"
  delete_os_disk_on_termination    = "true"
  delete_data_disks_on_termination = "true"
  license_type                     = "Windows_Server"
  zones                            = ["${element(local.azs, count.index)}"] 

  storage_image_reference {
    publisher = "MicrosoftWindowsServer"
    offer     = "WindowsServer"
    sku       = "${var.win_os[var.os_name]}"
    version   = "latest"
  }

  storage_os_disk {
    name              = "${var.vm_name_prefix}${element(var.vm_name_suffix, count.index)}-OSDisk"
    caching           = "ReadWrite"
    create_option     = "FromImage"
    managed_disk_type = "${var.os_disk_type}"
  }

  os_profile {
    computer_name  = "${var.vm_name_prefix}${element(var.vm_name_suffix, count.index)}"
    admin_username = "admin"
    admin_password = "${random_string.adminpassword.result}"
  }

  os_profile_windows_config {
    provision_vm_agent = true
  }
}

resource "azurerm_virtual_machine_extension" "test" {
  name                 = "hostname"
  location             = "${var.location}"
  resource_group_name  = "${var.rg_name}"
  virtual_machine_name = "${azurerm_virtual_machine.vm.name}"
  publisher            = "Microsoft.Compute"
  type                 = "CustomScriptExtension"
  type_handler_version = "1.9"

  settings = <<SETTINGS
    {
        "commandToExecute": "powershell -ExecutionPolicy Unrestricted -File C:\\FOLDER\\WinFirewall.ps1\""
    }
  SETTINGS

  depends_on = ["azurerm_virtual_machine.vm"]
}

Похоже, он пытается запустить расширение до того, как машина будет создана, поэтому я добавил зависимости от. Не уверен, хотя, поскольку ошибка мало что мне говорит. Любая помощь будет принята с благодарностью.

Обновлено: Вот журналы от VM

Журнал выполнения команд

[05/31/2019 20:09:24.31] Executing: C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3\enable.cmd 
[05/31/2019 20:09:24.34] Execution Complete.
######
Execution Output:
C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3>if not exist RuntimeSettings\*.settings exit /b -2 
C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3>start cmd /C bin\CustomScriptHandler.exe "enable" 


Execution Error:

######
 Number of Tries:
 1Command C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3\enable.cmd of Microsoft.Compute.CustomScriptExtension has exited with Exit code: 0
Plugin (name: Microsoft.Compute.CustomScriptExtension, version: 1.9.3) completed successfully.

Журнал обработчика пользовательских сценариев

[2140+00000001] [05/31/2019 19:15:06.60] [INFO] Starting IaaS ScriptHandler Extension v1
[2140+00000001] [05/31/2019 19:15:06.63] [INFO] HandlerEnvironment = Version: 1, HandlerEnvironment: [LogFolder: "C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3", ConfigFolder: "C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3\RuntimeSettings", StatusFolder: "C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3\Status", HeartbeatFile: "C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3\Status\HeartBeat.Json"]
[2140+00000001] [05/31/2019 19:15:06.63] [INFO] Installing Handler
[2140+00000001] [05/31/2019 19:15:06.63] [INFO] Handler successfully installed
[2140+00000001] [05/31/2019 19:15:06.64] [INFO] Removing user-level access rules for 2 directories
[2140+00000001] [05/31/2019 19:15:06.64] [INFO] Removing Users access rules from directory 'C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3'
[2140+00000001] [05/31/2019 19:15:06.67] [INFO] Removing Users access rules from directory 'C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3'
[2140+00000001] [05/31/2019 19:15:06.69] [INFO] Finished removing user-level access rules
[588+00000001] [05/31/2019 19:15:10.19] [INFO] Starting IaaS ScriptHandler Extension v1
[588+00000001] [05/31/2019 19:15:10.21] [INFO] HandlerEnvironment = Version: 1, HandlerEnvironment: [LogFolder: "C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3", ConfigFolder: "C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3\RuntimeSettings", StatusFolder: "C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3\Status", HeartbeatFile: "C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3\Status\HeartBeat.Json"]
[588+00000001] [05/31/2019 19:15:10.21] [INFO] Enabling Handler
[588+00000001] [05/31/2019 19:15:10.22] [INFO] Successfully enabled TLS.
[588+00000001] [05/31/2019 19:15:10.22] [INFO] Handler successfully enabled
[588+00000001] [05/31/2019 19:15:10.24] [INFO] Loading configuration for sequence number 0
[588+00000001] [05/31/2019 19:15:10.27] [INFO] HandlerSettings = ProtectedSettingsCertThumbprint: , ProtectedSettings: {}, PublicSettings: {FileUris: [], CommandToExecute: powershell -ExecutionPolicy Unrestricted -File C:\FOLDER\WinFirewall.ps1"}
[588+00000001] [05/31/2019 19:15:10.27] [INFO] Downloading files specified in configuration...
[588+00000001] [05/31/2019 19:15:10.35] [INFO] No files to download.
[588+00000001] [05/31/2019 19:15:10.36] [INFO] Files downloaded. Asynchronously executing command: 'powershell -ExecutionPolicy Unrestricted -File C:\FOLDER\WinFirewall.ps1"'
[588+00000001] [05/31/2019 19:15:10.38] [INFO] Command execution task started. Awaiting completion...
[588+00000001] [05/31/2019 19:15:13.55] [ERROR] Command execution finished. Command exited with code: -196608
[1944+00000001] [05/31/2019 20:09:24.64] [INFO] Starting IaaS ScriptHandler Extension v1
[1944+00000001] [05/31/2019 20:09:24.65] [INFO] HandlerEnvironment = Version: 1, HandlerEnvironment: [LogFolder: "C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3", ConfigFolder: "C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3\RuntimeSettings", StatusFolder: "C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3\Status", HeartbeatFile: "C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.3\Status\HeartBeat.Json"]
[1944+00000001] [05/31/2019 20:09:24.65] [INFO] Enabling Handler
[1944+00000001] [05/31/2019 20:09:24.67] [INFO] Successfully enabled TLS.
[1944+00000001] [05/31/2019 20:09:24.67] [INFO] Handler successfully enabled
[1944+00000001] [05/31/2019 20:09:24.69] [INFO] Loading configuration for sequence number 0
[1944+00000001] [05/31/2019 20:09:24.70] [INFO] HandlerSettings = ProtectedSettingsCertThumbprint: , ProtectedSettings: {}, PublicSettings: {FileUris: [], CommandToExecute: powershell -ExecutionPolicy Unrestricted -File C:\WS\CloudTemplates\Terraform\Azure\Deployments\_Testing\ANSIBLE_TEST\Module\WinFirewall.ps1"}
[1944+00000001] [05/31/2019 20:09:24.70] [WARN] Current sequence number, 0, is not greater than the sequence number of the most recently executed configuration. Exiting...
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
955
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

почему вы думаете, что заказ - это проблема. когда вы используете "${azurerm_virtual_machine.vm.name}", вы создаете неявную зависимость, поэтому расширение запускается после создания виртуальной машины. также ошибка говорит о том, что расширение не смогло выполнить скрипт (точнее он был выполнен, вернув ошибку или что-то в этом роде).

Чтобы выяснить, что происходит, проверьте журналы расширений на виртуальной машине.

https://learn.hashicorp.com/terraform/azure/dependencies_az

проверьте журналы расширений на виртуальной машине: C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptE‌​xtension

4c74356b41 31.05.2019 22:31

добавят их в основной пост

maltman 31.05.2019 22:32

похоже на проблему со скриптом потенциально

maltman 31.05.2019 22:37

читать эта статья. script заканчивается в очень конкретной папке, самый простой способ запустить его - использовать относительный путь, а не абсолютный

4c74356b41 31.05.2019 22:41

Итак, я попробовал локальный путь, UNC, относительный. Ничто не ставит файл на сервер.

maltman 31.05.2019 23:21

Я не уверен, что именно вы имеете в виду, но для загрузки скрипта его необходимо загрузить через общедоступный URL-адрес. взгляните на статью, которую я связал. в нем есть примеры использования URL-адреса для загрузки скрипта.

4c74356b41 01.06.2019 07:03

Спасибо за помощь в этом. Да, я видел URL-адреса файлов и могу сделать это со своим Github, но я надеялся, что смогу сделать это со своим локальным диском. Не уверен, почему он не примет его. Я пробовал \\PCIP\Folder, C:\Folder и /PCIP/Folder. Кажется, ничего не работает.

maltman 03.06.2019 15:28

это не будет работать с вашего локального диска. vm выполняет загрузку. не ваш ноутбук выполняет загрузку. лазурная реализация.

4c74356b41 03.06.2019 16:14

Это то, что я полагал. Ну что ж. Я могу сделать из Github. Спасибо за всю твою помощь.

maltman 03.06.2019 16:28

Другие вопросы по теме