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

Я пытаюсь настроить WinRM во время создания виртуальной машины Windows с помощью Terraform.

Мои os_profile и os_profile_windows_config:

os_profile {
    computer_name  = "server-name"
    admin_username = "${var.vm_username}"
    admin_password = "${var.vm_password}"
    custom_data = <<EOF
    <powershell>
    winrm quickconfig -q
    winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="300"}'
    winrm set winrm/config '@{MaxTimeoutms="1800000"}'
    winrm set winrm/config/service '@{AllowUnencrypted="true"}'
    winrm set winrm/config/service/auth '@{Basic="true"}'

    netsh advfirewall firewall add rule name="WinRM 5985" protocol=TCP dir=in localport=5985 action=allow
    netsh advfirewall firewall add rule name="WinRM 5986" protocol=TCP dir=in localport=5986 action=allow

    net stop winrm
    sc.exe config winrm start=auto
    net start winrm
    </powershell>
    EOF
  }  



os_profile_windows_config {
    provision_vm_agent = true
    winrm {
       protocol="http"
     }
  }

Когда я подключаюсь к виртуальной машине, я вижу CustomData.bin файл в C:\AzureData, но он не выполнил ни одной из Powershell. Прав ли я, думая, что это должно было быть выполнено, или мне нужно сделать еще один шаг, чтобы выполнить это?


person darren25    schedule 25.07.2018    source источник


Ответы (2)


Нет, не должно. это просто base64 (насколько я помню, его закодированная base64 может быть неправильной) закодированная строка, выгруженная в файл. нужно расшифровать \ выполнить другими способами

person 4c74356b41    schedule 25.07.2018
comment
Есть идеи, что использовать или как выполнять? У меня серьезные проблемы с попыткой перенести сценарий на виртуальную машину, а затем выполнить его. - person darren25; 25.07.2018
comment
используйте powershell dsc или расширение сценария. расширение скрипта довольно простое - person 4c74356b41; 25.07.2018
comment
Я пробовал настраиваемое расширение сценария, но оно требует, чтобы мой сценарий находился в общедоступном контейнере или был общедоступным на git. Я не могу этого сделать из-за характера сценария. Невозможно использовать настраиваемое расширение сценария и передать учетные данные учетной записи, как при использовании шаблона ARM. - person darren25; 25.07.2018
comment
вы можете использовать токены sas со сценарием, чтобы безопасно загрузить его из хранилища Azure stackoverflow.com/questions/43752262/ - person 4c74356b41; 25.07.2018
comment
Просто изучил это и не вижу, где я могу передать токен sas в ресурс azurerm_virtual_machine_extension - person darren25; 25.07.2018
comment
проверьте принятый ответ, он показывает, как это сделать, в любом случае, это не часть исходного вопроса, я предлагаю вам принять этот ответ и начать новый, если вы не можете понять это - person 4c74356b41; 25.07.2018
comment
Как я могу принять ответ, если на мой вопрос нет ответа? Я проверил принятый ответ в другом сообщении, и мой токен sas уже имеет &sr=b в конце, поэтому это не помогает. - person darren25; 25.07.2018
comment
на ваш вопрос был дан ответ, это новый - person 4c74356b41; 25.07.2018
comment
На самом деле это не так. Совершенно ясно, о чем я прошу, и любой ответ, который вы предоставили, не работает. Следовательно, я все еще не могу запустить Powershell, описанный выше, при создании новой виртуальной машины. - person darren25; 26.07.2018
comment
Ваш вопрос заключался в том, почему пользовательские данные не запускаются, я ответил на это, теперь вы задаете другой вопрос, и я ответил на него, а вы задаете еще один ... правда? - person 4c74356b41; 26.07.2018
comment
Совершенно очевидно, чего я здесь пытаюсь достичь. Любая помощь была оценена, но принятый ответ в сообщении, на которое вы ссылались, не помог. Это не означает, что на мой вопрос был дан ответ. - person darren25; 26.07.2018

Чтобы выполнить сценарий на компьютере под управлением Windows, необходимо выполнить собственное расширение сценария с использованием ресурса azurerm_virtual_machine_extension. Здесь вы можете обратиться к файлу CustomData.bin и запустить его.

Пожалуйста, проверьте эту ссылку, в ней подробно объясняется, как загрузить оба Linux и виртуальные машины Windows

person jerma88    schedule 06.11.2018
comment
Мне действительно интересна эта ссылка, поскольку я изучаю, как загрузить виртуальную машину Linux. Ссылка мертвая. Не связывайтесь. Объясни в ответ. - person pijemcolu; 02.11.2019