Ich habe einige Probleme bei der Bereitstellung einer dscExtension in einem Azure Virtual Machine-Skalierungssatz (VMSS) mit einer Bereitstellungsvorlage.Probleme beim Bereitstellen von dscExtension in Azure VMSS
Hier ist, wie ich hinzugefügt habe es zu meiner Vorlage:
{
"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"
}
]
}
}
}
Die VMSS selbst ist erfolgreich bereitstellen, aber wenn ich die InstanceView der einzelnen VMs zu finden, zeigt die dscExtension den Status Fehler mit einer Fehlermeldung .
Die Probleme, die ich habe, sind wie folgt:
Der ARM Einsatz versucht nicht, die dscExtension auf redeploy zu aktualisieren. Ich bin MSDeploy für Web App-Erweiterungen gewohnt, bei denen die Artefakte aktualisiert werden und der Code bei jeder neuen Bereitstellung erneut bereitgestellt wird. Ich weiß nicht, wie man es zwingt, die dscExtension mit neuen Binärdateien zu aktualisieren. In der Tat scheint es nur einen Fehler bei der ersten Bereitstellung der VMSS zu geben, dann wird es nicht noch einmal versuchen.
Der Fehler, den ich bekomme, ist für alten Code, der nicht mehr existiert.
hatte ich vorher einen Fehler in einem Skript benutzerdefinierten DSC Powershell, wo ich den -replace Operator zu verwenden versuchte, die ein $ Spiele Variable erstellen sollten, aber es sagt Spiele $ gibt es nicht.
In jedem Fall, habe ich seit dem Refaktorieren des Codes und löschte die gesamte Ressourcengruppe dann neu implementiert. Die dscExtension gibt immer noch den gleichen Fehler. Ich habe überprüft, dass das BLOB-Speicherkonto, in dem sich meine DSC-Datei befindet, nicht mehr den Code besitzt, der diese Fehlermeldung erzeugt. Azure muss die dscExtension irgendwo zwischenspeichern. Ich kann es nicht nutzen, um mein neues Blob .zip zu verwenden, das ich vor jeder Bereitstellung hochlade.
Jeder Einblick in die DSC-Erweiterung und wie man es zwingt, auf Bereitstellung zu aktualisieren?
Vielen Dank.Ich war tatsächlich in der Lage, die DSC-Erweiterung richtig funktionieren zu lassen, indem ich zu TypeHandlerVersion 2.17 wechselte und die JSON-Syntax verwendete, die ich nur hier https://blogs.msdn.microsoft.com/powershell/2016/02/26/arm-dsc finden konnte -extension-settings/ –
Aber ich muss es immer noch zwingen, es zu aktualisieren, natürlich ist diese Antwort großartig. –
ein weiterer Debugging-Tipp ist, dass, wenn Sie Probleme haben, es erneut auszuführen können Sie die Erweiterung entfernen und den Rest der VM und RG intakt lassen - viel schneller zum Debuggen. Ich benutze PowerShells "Remove-AzureRmVMExtension". –