Проблема с установкой расширения DSC на виртуальной машине Azure во время развертывания с использованием Terraform - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь использовать информацию в этой статье:

https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/dsc-template#default-configuration-script

для установки виртуальной машины в Azure Automation во время развертывания и применения конфигурации.

Я использую Terraform для развертывания, ниже приведен код, который я использую для расширений:

resource "azurerm_virtual_machine_extension" "cse-dscconfig" {
  name                    = "${var.vm_name}-dscconfig-cse"
  location                = "${azurerm_resource_group.my_rg.location}"
  resource_group_name     = "${azurerm_resource_group.my_rg.name}"
  virtual_machine_name    = "${azurerm_virtual_machine.my_vm.name}"
  publisher               = "Microsoft.Powershell"
  type                    = "DSC"
  type_handler_version    = "2.76"
  depends_on              = ["azurerm_virtual_machine.my_vm"]

  settings = <<SETTINGS
        {
          "configurationArguments": {
              "RegistrationUrl": "${var.endpoint}",
              "NodeConfigurationName": "VMConfig"
          }
        }
        SETTINGS

  protected_settings = <<PROTECTED_SETTINGS
        {
                "configurationArguments": {
                  "registrationKey": {
                    "userName": "NOT_USED",
                    "Password": "${var.key}"
                  }
                }
        }
        PROTECTED_SETTINGS
}

Я получаю значение RegistrationURL во время выполнения, выполнив приведенную ниже команду и передав значение в Terraform:

$endpoint = (Get-AzureRmAutomationRegistrationInfo -ResourceGroupName $tf_state_rg -AutomationAccountName $autoAcctName).Endpoint

Я получаю значение Password во время выполнения, выполнив приведенную ниже команду и передав значение в Terraform:

$key = (Get-AzureRmAutomationRegistrationInfo -ResourceGroupName $tf_state_rg -AutomationAccountName $autoAcctName).PrimaryKey

Я могу сказать из журналов на ВМ, что расширение устанавливается, но никогда не регистрируется с учетной записью автоматизации.

1 Ответ

0 голосов
/ 26 января 2019

разобрался в чем проблема. Документация в некоторых областях очень тонкая, поэтому методом проб и ошибок я обнаружил, что является причиной проблемы. У меня было неправильное значение в свойствах NodeConfigurationName. Что говорится в документации об этом свойстве: Specifies the node configuration in the Automation account to assign to the node. Не имея большого опыта работы с DSC, я прервал это, чтобы обозначить имя конфигурации, как показано в разделе Configurations блейда State configuration (DSC) учетной записи автоматизации на портале Azure. .

На самом деле свойство NodeConfigurationName относится к определению Node внутри конфигурации, и оно должно быть в формате ConfigurationName.NodeName. Например, имя моей конфигурации VMConfig, а в источнике конфигурации у меня определен блок Node с именем localhost. Итак, при этом ... значение свойства NodeConfigurationName должно быть VMConfig.localhost.

...