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.
Sie können die Azure CLI installieren, um Azure Stack Hub mit einem Windows- oder Linux-Computer zu verwalten. Dieser Artikel führt Sie durch die Schritte zum Installieren und Einrichten der Azure CLI.
Installieren der Azure-Befehlszeilenschnittstelle
Melden Sie sich bei Ihrer Entwicklungsarbeitsstation an, und installieren Sie CLI. Azure Stack Hub erfordert Version 2.0 oder höher von Azure CLI.
Von Bedeutung
Aufgrund einer CVE , die sich auf Azure CLI-Versionen vor 2.40.0 auswirkt, wird nicht mehr empfohlen, Azure CLI 2.29.2 für AD FS im Azure Stack Hub zu verwenden. Sie können auf Azure CLI 2.40.0 oder höher aktualisieren. Ad FS-Kunden können jedoch Probleme mit Azure CLI-Befehlen haben, die mit Microsoft Graph-Endpunkten interagieren. Dies liegt daran, dass Microsoft Graph für AD FS nicht unterstützt wird. Problemumgehungen zu Microsoft Graph-Problemen finden Sie im Abschnitt "Allgemeine bekannte Probleme ".
Sie können die CLI mithilfe der im Artikel "Installieren der Azure CLI " beschriebenen Schritte installieren.
Um zu überprüfen, ob die Installation erfolgreich war, öffnen Sie ein Terminal- oder Eingabeaufforderungsfenster, und führen Sie den folgenden Befehl aus:
az --versionSie sollten die Version von Azure CLI und andere abhängige Bibliotheken sehen, die auf Ihrem Computer installiert sind.
Notieren Sie sich den Python-Speicherort der CLI.
Hinzufügen eines Zertifikats
Exportieren Und importieren Sie dann das Azure Stack Hub-Zertifikat für getrennte integrierte Systeme. Bei verbundenen integrierten Systemen ist das Zertifikat öffentlich signiert, und dieser Schritt ist nicht erforderlich.
Herstellen einer Verbindung mit Azure CLI
Dieser Abschnitt führt Sie durch die Einrichtung von CLI, wenn Sie Microsoft Entra ID als Identitätsverwaltungsdienst verwenden und CLI auf einem Windows-Computer verwenden.
Herstellen einer Verbindung mit Azure Stack Hub
Registrieren Sie Ihre Azure Stack Hub-Umgebung, indem Sie den
az cloud registerBefehl ausführen.Registrieren Sie Ihre Umgebung. Verwenden Sie beim Ausführen
az cloud registerdie folgenden Parameter:Wert Beispiel BESCHREIBUNG Umgebungsname AzureStackUser Wird für die Benutzerumgebung verwendet AzureStackUser. Wenn Sie Operator sind, geben SieAzureStackAdminan.Resource Manager-Endpunkt https://management.contoso.onmicrosoft.comDer ResourceManagerUrl in integrierten Systemen lautet: https://management.<region>.<fqdn>/. Wenn Sie eine Frage zum integrierten Systemendpunkt haben, wenden Sie sich an Ihren Cloudbetreiber.Speicherendpunkt local.contoso.onmicrosoft.com Verwenden Sie für ein integriertes System einen Endpunkt für Ihr System. Keyvault-Suffix .vault.contoso.onmicrosoft.com Verwenden Sie für ein integriertes System einen Endpunkt für Ihr System. Ressourcen-ID der Endpunkt-Active Directory-Graph-Ressource https://graph.microsoft.com/Die Active Directory-Ressourcen-ID. az cloud register ` -n <environmentname> ` --endpoint-resource-manager "https://management.<region>.<fqdn>" ` --suffix-storage-endpoint "<fqdn>" ` --suffix-keyvault-dns ".vault.<fqdn>"Weitere Informationen finden Sie im Registrierungsbefehl in der Azure CLI-Referenzdokumentation.
Legen Sie die aktive Umgebung mithilfe der folgenden Befehle fest.
az cloud set -n <environmentname>Aktualisieren Sie Ihre Umgebungskonfiguration so, dass das spezifische API-Versionsprofil für Azure Stack Hub verwendet wird. Führen Sie den folgenden Befehl aus, um die Konfiguration zu aktualisieren:
az cloud update --profile 2020-09-01-hybridMelden Sie sich mit dem
az loginBefehl bei Ihrer Azure Stack Hub-Umgebung an.Sie können sich mit Ihren Benutzeranmeldeinformationen oder einem Von Ihrem Cloudoperator bereitgestellten Dienstprinzipal (SPN) bei der Azure Stack Hub-Umgebung anmelden.
- Melden Sie sich als Benutzer an:
Sie können entweder den Benutzernamen und das Kennwort direkt im Befehl
az logineingeben oder die Authentifizierung über einen Browser ausführen. Sie müssen sich mit einem Browser authentifizieren, wenn Ihr Konto die mehrstufige Authentifizierung aktiviert hat:az login -u "user@contoso.onmicrosoft.com" -p 'Password123!' --tenant contoso.onmicrosoft.comHinweis
Wenn Ihr Benutzerkonto die mehrstufige Authentifizierung aktiviert hat, verwenden Sie den
az loginBefehl, ohne den-uParameter bereitzustellen. Wenn Sie diesen Befehl ausführen, erhalten Sie eine URL und einen Code, den Sie für die Authentifizierung verwenden müssen.Melden Sie sich als Dienstprinzipal an:
Bevor Sie sich anmelden, erstellen Sie einen Dienstprinzipal über das Azure-Portal oder die CLI, und weisen Sie ihm eine Rolle zu. Melden Sie sich jetzt mit dem folgenden Befehl an:
az login ` --tenant <Azure Active Directory Tenant name. ` For example: myazurestack.onmicrosoft.com> ` --service-principal ` -u <Application Id of the Service Principal> ` -p <Key generated for the Service Principal>
Überprüfen Sie, ob Ihre Umgebung ordnungsgemäß festgelegt ist und dass Ihre Umgebung die aktive Cloud ist:
az cloud list --output tableSie sollten sehen, dass Ihre Umgebung aufgeführt ist und IsActive ist
true. Beispiel:IsActive Name Profile ---------- ----------------- ----------------- False AzureCloud 2020-09-01-hybrid False AzureChinaCloud latest False AzureUSGovernment latest False AzureGermanCloud latest True AzureStackUser 2020-09-01-hybrid
Testen der Konnektivität
Wenn alles eingerichtet ist, verwenden Sie CLI, um Ressourcen innerhalb von Azure Stack Hub zu erstellen. Sie können beispielsweise eine Ressourcengruppe für eine App erstellen und einen virtuellen Computer hinzufügen. Verwenden Sie den folgenden Befehl, um eine Ressourcengruppe namens "MyResourceGroup" zu erstellen:
az group create -n MyResourceGroup -l local
Wenn die Ressourcengruppe erfolgreich erstellt wird, gibt der vorherige Befehl die folgenden Eigenschaften der neu erstellten Ressource aus:
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/RGCL11",
"location": "local",
"name": "RGCLI1",
" properties ": {
"provisioningState": "Succeeded"
},
"tags ": null
}
Allgemeine bekannte Probleme
Die allgemeine Lösung für die meisten Probleme besteht darin, den az rest Befehl zu verwenden, der den aktuellen Azure Stack-Kontext verwendet, um einen REST-API-Aufruf für den zugehörigen Befehl mit dem Problem zu erstellen. Die Problemumgehungen in der folgenden Problemliste können in der Regel für andere Azure CLI-Probleme angepasst werden, solange diese Probleme durch Azure CLI und nicht durch Azure Stack Hub-Ressourcenanbieter oder andere Azure Stack Hub-Dienste verursacht werden.
Microsoft Graph-Probleme
Dies sind die bekannten Microsoft Graph-Probleme für Azure CLI 2.40.0 oder höher für Azure Stack Hub. Dies betrifft in erster Linie AD FS-Umgebungen, da sie Microsoft Graph nicht unterstützen.
az keyvault createinteragiert mit Microsoft Graph. Im Folgenden sehen Sie eine Beispielumgehung für AD FS. In erster Linie verwendet die Problemumgehung Azure AD Graph, um Benutzerinformationen wie z. B. dieobjectIdStatt von Microsoft Graph abzurufen.# First, sign into Azure CLI account you want to create the Key Vault from. # TODO: change the principal name to name of principal you want to create the key vault with. $principalNameLike = "CloudUser*" # TODO: change location to your preference. $location = "local" $aadGraph = az cloud show --query endpoints.activeDirectoryGraphResourceId --output tsv $tenantId = az account show --query tenantId --output tsv if ($aadGraph[-1] -ne '/') { $aadGraph += '/' } $userObject = az rest --method get --url "${aadGraph}${tenantId}/users?api-version=1.6" ` | ConvertFrom-Json ` | Select-Object -ExpandProperty value ` | Where-Object {$_.userPrincipalName -like $principalNameLike} $body = '{ "location": "' + $location + '", "properties": { "tenantId": "' + $tenantId + '", "sku": { "family": "A", "name": "standard" }, "accessPolicies": [ { "tenantId": "' + $tenantId + '", "objectId": "' + $userObject.objectId + '", "permissions": { "keys": [ "get", "create", "delete", "list", "update", "import", "backup", "restore", "recover" ], "secrets": [ "get", "list", "set", "delete", "backup", "restore", "recover" ], "certificates": [ "get", "list", "delete", "create", "import", "update", "managecontacts", "getissuers", "listissuers", "setissuers", "deleteissuers", "manageissuers", "recover" ], "storage": [ "get", "list", "delete", "set", "update", "regeneratekey", "setsas", "listsas", "getsas", "deletesas" ] } } ], "enabledForDeployment": true, "enabledForTemplateDeployment": true } }' $body | Out-File -FilePath (Join-Path -Path "." -ChildPath "body.json") $resourceGroupName = "testrg123" az group create -n $resourceGroupName -l $location $armEndpoint = az cloud show --query endpoints.resourceManager --output tsv if ($armEndpoint[-1] -ne '/') { $armEndpoint += '/' } $subscriptionId = az account show --query id --output tsv $keyVaultName = "testkv123" az rest --method put --url "${armEndpoint}subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.KeyVault/vaults/${keyVaultName}?api-version=2016-10-01" --body `@body.json # OPTIONAL: test access to the Key Vault. # az keyvault secret set --name MySecretName --vault-name $keyVaultName --value MySecretWeitere Informationen zur Key Vault-REST-API finden Sie in der Referenz zur Key Vault-REST-API.
Andere Probleme
Es folgen Probleme, die nicht auf bestimmte Versionen oder Bereiche von Versionen von Azure CLI beschränkt sind.
az role assignment createwird derzeit nicht von Azure CLI für Azure Stack Hub aufgrund eines alten API-Problems unterstützt. Die folgende Problemumgehung ist für Microsoft Entra ID oder AD FS erforderlich.# First, sign into account with access to the resource that is being given access or a role to another user. # TODO: change the principal name to name of principal you want to assign the role to. $principalNameLike = "CloudUser*" # TODO: change role name to your preference. $roleName = "Owner" # TODO: change location to your preference. $location = "local" $aadGraph = az cloud show --query endpoints.activeDirectoryGraphResourceId --output tsv $tenantId = az account show --query tenantId --output tsv if ($aadGraph[-1] -ne '/') { $aadGraph += '/' } $userObject = az rest --method get --url "${aadGraph}${tenantId}/users?api-version=1.6" ` | ConvertFrom-Json ` | Select-Object -ExpandProperty value ` | Where-Object {$_.userPrincipalName -like $principalNameLike} $roleDefinitionId = az role definition list --query "[?roleName=='${roleName}'].id" --output tsv $body = @{ properties = @{ roleDefinitionId = $roleDefinitionId principalId = $userObject.objectId } } $body | ConvertTo-Json | Out-File -FilePath (Join-Path -Path "." -ChildPath "body.json") $resourceGroupName = "testrg123" az group create -n $resourceGroupName -l $location $armEndpoint = az cloud show --query endpoints.resourceManager --output tsv if ($armEndpoint[-1] -ne '/') { $armEndpoint += '/' } $scope = az group show --name $resourceGroupName --query id --output tsv $guid = (New-Guid).ToString() az rest --method put --url "${armEndpoint}${scope}/providers/Microsoft.Authorization/roleAssignments/${guid}?api-version=2015-07-01" --body `@body.json # OPTIONAL: test access to the resource group, or use the portal. # az login -u <assigned user name> -p <assigned user password> --tenant $tenantId # Test a resource creation command in the resource group: # az network dns zone create -g $resourceGroupName -n "www.mysite.com"Weitere Informationen zur REST-API für rollenzuweisungen finden Sie im Artikel zu Rollenzuweisungen.