Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Stellen Sie ein Skalierungssetimage für virtuelle Computer bereit.
Hinweis
In dieser Version der Aufgabe wird Azure RBAC verwendet, um eine Verbindung mit Azure Storage herzustellen. Weitere Informationen finden Sie unter Konfigurieren von Azure RBAC für den Zugriff auf Azure Storage.
Syntax
# Azure VM scale set deployment v1
# Deploy a virtual machine scale set image.
- task: AzureVmssDeployment@1
inputs:
# Azure Details
azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription.
action: 'Update image' # 'Update image' | 'Configure application startup'. Required. Action. Default: Update image.
vmssName: # string. Required. Virtual Machine scale set name.
vmssOsType: # 'Windows' | 'Linux'. Required. OS type.
# Image Details
#imageUrl: # string. Required when action = Update image || action = UpdateImage. Image URL.
# Configure start-up
#customScriptsDirectory: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Custom script directory.
#customScript: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Command.
#customScriptArguments: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Arguments.
#customScriptsStorageAccount: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Azure storage account where custom scripts will be uploaded.
# Advanced
#skipArchivingCustomScripts: false # boolean. Skip Archiving custom scripts. Default: false.
Eingänge
azureSubscription
-
Azure-Abonnement
Eingabealias: ConnectedServiceName.
string. Erforderlich.
Wählen Sie das Azure Resource Manager-Abonnement für die Skalierungsgruppe aus.
action
-
Aktion
string. Erforderlich. Zulässige Werte: Update image (VM Scale set by using an image), Configure application startup (Run Custom Script VM extension on VM scale set). Standardwert: Update image.
Wählen Sie zwischen dem Aktualisieren einer VM-Skalierungsgruppe mithilfe eines VHD-Images und/oder dem Ausführen von Bereitstellungs-/Installationsskripts mithilfe der VM-Erweiterung für benutzerdefinierte Skripts.
Der VHD-Imageansatz eignet sich besser für eine schnelle Skalierung und ein Rollback. Der Erweiterungsansatz ist nützlich für die Konfiguration nach der Bereitstellung, die Softwareinstallation oder andere Konfigurations-/Verwaltungsaufgaben.
Sie können ein VHD-Image nur dann verwenden, um eine VM-Skalierungsgruppe zu aktualisieren, wenn sie mithilfe eines benutzerdefinierten Images erstellt wurde. Das Update schlägt fehl, wenn die VM-Skalierungsgruppe mithilfe eines in Azure verfügbaren Plattform-/Katalogimages erstellt wurde.
Der Ansatz der VM-Erweiterung für benutzerdefinierte Skripts kann für VM-Skalierungsgruppen verwendet werden, die entweder mit einem benutzerdefinierten Image oder einem Plattform-/Katalogimage erstellt wurden.
vmssName
-
Vm-Skalierungssatzname
string. Erforderlich.
Name der VM-Skalierungsgruppe, die Sie mithilfe eines VHD-Images oder mithilfe der VM-Erweiterung für benutzerdefinierte Skripts aktualisieren möchten.
vmssOsType
-
Betriebssystemtyp
string. Erforderlich. Zulässige Werte: Windows, Linux.
Wählen Sie den Betriebssystemtyp der VM-Skalierungsgruppe aus.
imageUrl
-
Bild-URL
string. Erforderlich, wenn action = Update image || action = UpdateImage.
Geben Sie die URL des VHD-Images an. Wenn es sich um eine Azure Storage-Blob-URL handelt, sollte der Speicherkontospeicherort mit dem Speicherort der Skalierungsgruppe identisch sein.
customScriptsDirectory
-
Benutzerdefiniertes Skriptverzeichnis
string. Wahlfrei. Wird verwendet, wenn action = Configure application startup || action = Update image || action = UpdateImage.
Pfad zum Verzeichnis mit benutzerdefinierten Skripts, die mithilfe der VM-Erweiterung "Custom Script" ausgeführt werden. Der Erweiterungsansatz ist nützlich für die Bereitstellungskonfiguration, Anwendungs-/Softwareinstallation oder eine andere Anwendungskonfigurations-/Verwaltungsaufgabe. Beispiel: Das Skript kann eine Umgebungsvariable auf Maschinenebene festlegen, die von der Anwendung verwendet wird, z. B. eine Datenbankverbindungszeichenfolge.
customScript
-
Befehl
string. Wahlfrei. Wird verwendet, wenn action = Configure application startup || action = Update image || action = UpdateImage.
Das Skript, das mithilfe der VM-Erweiterung "Benutzerdefiniertes Skript" ausgeführt wird. Dieses Skript kann andere Skripts im Verzeichnis aufrufen. Das Skript wird mit den unten übergebenen Argumenten aufgerufen.
Dieses Skript kann in Verbindung mit solchen Argumenten zum Ausführen von Befehlen verwendet werden. Beispiel:
1. Update-DatabaseConnectionStrings.ps1 -clusterType dev -user $(dbUser) -password $(dbUserPwd) aktualisiert die Verbindungszeichenfolge in web.config der Webanwendung.
2. install-secrets.sh --key-vault-type prod -key servicePrincipalKey erstellt eine verschlüsselte Datei mit dem Dienstprinzipalschlüssel.
customScriptArguments
-
Argumente
string. Wahlfrei. Wird verwendet, wenn action = Configure application startup || action = Update image || action = UpdateImage.
Das benutzerdefinierte Skript wird mit übergebenen Argumenten aufgerufen. Es können Build-/Release-Variablen verwendet werden, was die Verwendung von Geheimnissen erleichtert.
customScriptsStorageAccount
-
Azure-Speicherkonto, in das benutzerdefinierte Skripts hochgeladen werden
string. Wahlfrei. Wird verwendet, wenn action = Configure application startup || action = Update image || action = UpdateImage.
Die benutzerdefinierte Skripterweiterung lädt Skripts herunter und führt sie aus, die von Ihnen auf jedem virtuellen Computer in der VM-Skalierungsgruppe bereitgestellt werden. Diese Skripts werden in dem hier angegebenen Speicherkonto gespeichert. Geben Sie ein bereits vorhandenes ARM-Speicherkonto an.
skipArchivingCustomScripts
-
Archivierung benutzerdefinierter Skripts überspringen
boolean. Standardwert: false.
Standardmäßig erstellt diese Aufgabe ein komprimiertes Archiv eines Verzeichnisses, das benutzerdefinierte Skripts enthält. Dies verbessert die Leistung und Zuverlässigkeit beim Hochladen in Azure Storage. Wenn nicht ausgewählt, erfolgt die Archivierung nicht, und alle Dateien werden einzeln hochgeladen.
Aufgabensteuerungsoptionen
Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.
Ausgabevariablen
Keiner.
Bemerkungen
Verwenden Sie diese Aufgabe, um ein Skalierungssetimage für virtuelle Computer bereitzustellen.
Die Skriptausführung wird als erfolgreich gemeldet, die VMSS-Instanzen werden jedoch nicht aktualisiert.
Skalierungssätze verfügen über eine Upgraderichtlinie, die bestimmt, wie VMs mit dem neuesten Skalierungssatzmodell up-to-Datum gebracht werden, und wenn die Upgraderichtlinie auf manuell festgelegt ist, müssen Sie jede VM manuell aktualisieren. Weitere Informationen finden Sie unter How to bring VMs up-to-date with the latest scale set model. Sie können die Updaterichtlinie ändern oder jede VM manuell aktualisieren. Um beispielsweise die Richtlinie auf Automaticzu aktualisieren, verwenden Sie den folgenden Az CLI-Befehl: az vmss update --set upgradePolicy.mode=Automatic -g <resource group name> -n <vmss name>
Fehler: 'Berechtigung verweigert: Skript ist nicht ausführbare Datei'
Dieses Problem tritt auf, wenn Sie versuchen, ein benutzerdefiniertes Skript auszuführen, das Skript jedoch nicht ausführbar ist.
Um das Problem zu beheben, stellen Sie zuerst sicher, dass die customScript Eingabe nicht über ./ oder etwas anderes verfügt, bevor der Skriptname 'test.sh':
customScript: 'test.sh'
Versuchen Sie als Nächstes, eine Befehlszeilenaufgabe hinzuzufügen, bevor Sie die Skalierungssatzaufgabe des virtuellen Computers ausführen:
- task: CmdLine@2
inputs:
script: 'chmod 777 $(System.DefaultWorkingDirectory)/test.sh'
Konfigurieren von Azure RBAC für den Zugriff auf Azure Storage
In dieser Version der Aufgabe wird eine Azure Resource Manager-Dienstverbindung verwendet, die mithilfe des Workloadidentitätsverbunds und Azure RBAC konfiguriert wurde, um eine Verbindung mit Azure Storage anstelle von Speicherkontoschlüsseln oder Shared Access Signatures (SAS) herzustellen. Um über diese Aufgabe eine Verbindung mit Azure Storage herzustellen, müssen Sie der Identität der Dienstverbindung, die für konfiguriert ist, die Rolle azureSubscription für das Speicherkonto zuweisen.
Weitere Informationen finden Sie unter Zuweisen einer Azure-Rolle für den Zugriff auf Blobdaten und Schritte zum Zuweisen einer Rolle.
Für die AzureVmssDeployment@1 Aufgabe sind die folgenden zusätzlichen RBAC-Rollen erforderlich, die für den Zugriff auf das in konfigurierte Speicherkonto konfiguriert customScriptsStorageAccountsind.
| Rolle | Ressource | Benutzer |
|---|---|---|
| Mitwirkender oder Mitwirkender an virtuellen Maschinen | VM-Skalierungsgruppe | Die Identität der Dienstverbindung, die für azureSubscription |
| Mitwirkender an Speicherblobdaten | Azure-Speicherkonto, das das benutzerdefinierte Skript enthält | Die Identität der Dienstverbindung, die für azureSubscription |
| Leser von Speicherblobdaten | Azure-Speicherkonto, das das benutzerdefinierte Skript enthält | Die systemseitig zugewiesene verwaltete Identität des VM-Skalierungssatzes |
Anforderungen
| Anforderung | BESCHREIBUNG |
|---|---|
| Pipelinetypen | YAML, Classic Build, Classic Release |
| Läuft auf | Agent, DeploymentGroup |
| Anforderungen | Nichts |
| Funktionen | Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag. |
| Befehlseinschränkungen | Beliebig |
| Settable-Variablen | Beliebig |
| Agentversion | 2.209.0 oder höher |
| Vorgangskategorie | Einsetzen |