У меня возникли проблемы с развертыванием dscExtension для набора параметров виртуальной машины Azure (VMSS) с использованием шаблона развертывания.Проблемы с развертыванием dscExtension до Azure VMSS
Вот как я добавил его в шаблон:
{
"name": "dscExtension",
"properties": {
"publisher": "Microsoft.Powershell",
"type": "DSC",
"typeHandlerVersion": "2.9",
"autoUpgradeMinorVersion": true,
"settings": {
"ModulesUrl": "[concat(parameters('_artifactsLocation'), '/', 'MyDscPackage.zip', parameters('_artifactsLocationSasToken'))]",
"ConfigurationFunction": "CmvmProcessor.ps1\\CmvmProcessor",
"Properties": [
{
"Name": "ServiceCredentials",
"Value": {
"UserName": "parameters('administratorLogin')",
"Password": "parameters('administratorLoginPassword')"
},
"TypeName": "System.Management.Automation.PSCredential"
}
]
}
}
}
Самого VMSS успешно развернуть, но когда я просматриваю InstanceView в отдельных виртуальных машинах, то dscExtension показывает неисправное состояние с сообщением об ошибке ,
Проблемы у меня возникают следующие:
развертывания тонарма не пытается обновить dscExtension После повторного развёртывания. Я привык к расширениям веб-приложений MSDeploy, где артефакты обновляются, а код перераспределяется при каждом новом развертывании. Я не знаю, как заставить его обновлять dscExtension с помощью новых двоичных файлов. На самом деле это только, кажется, дает ошибку при первом развертывании VMSS, тогда он даже не попытается повторить.
Ошибка, которую я получаю для старого кода, который больше не существует.
У меня была ошибка, ранее в пользовательском DSC Powershell скрипт, где я пытался использовать оператор -replace, который предполагается создать $ Спички переменной, но это говорит $ Спички не существует.
В любом случае, я с тех пор отредактировал код и удалил всю группу ресурсов, а затем повторно развернул. Значение dscExtension по-прежнему дает ту же ошибку. Я проверил учетную запись хранилища blob, в которой находится мой DSC .zip, больше не имеет кода, способного вызывать это сообщение об ошибке. Azure должен кэшировать dscExtension где-нибудь. Я не могу заставить его использовать мой новый blob .zip, который я загружаю перед каждым развертыванием.
Любое понимание расширения DSC и как его заставить обновлять при развертывании?
спасибо.Я действительно смог нормально работать с DSC-расширением, переключившись на TypeHandlerVersion 2.17 и используя синтаксис JSON, который мог найти только здесь. Https://blogs.msdn.microsoft.com/powershell/2016/02/26/arm-dsc -extension-settings/ –
Но мне все же нужно заставить его обновляться, конечно, так что этот ответ велик. –
еще одна подсказка для отладки заключается в том, что если у вас возникли проблемы с ее повторным запуском, вы можете удалить расширение и оставить остальную часть виртуальной машины и RG неповрежденной - гораздо быстрее для отладки. Я использую PowerShell «Remove-AzureRmVMExtension». –