Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan installera Azure CLI för att hantera Azure Stack Hub med en Windows- eller Linux-dator. Den här artikeln beskriver hur du installerar och konfigurerar Azure CLI.
Installera Azure CLI
- Logga in på din utvecklingsarbetsstation och installera CLI. Azure Stack Hub kräver version 2.0 eller senare av Azure CLI. - Viktigt! - På grund av en CVE som påverkar Azure CLI-versioner tidigare än 2.40.0 rekommenderar vi inte längre att du använder Azure CLI 2.29.2 för AD FS i Azure Stack Hub. Du kan uppdatera till Azure CLI 2.40.0 eller senare. AD FS-kunder kan dock stöta på problem med Azure CLI-kommandon som interagerar med Microsoft Graph-slutpunkter. Det beror på att Microsoft Graph inte stöds för AD FS. Information om lösningar på Microsoft Graph-problem finns i avsnittet Allmänt kända problem . 
- Du kan installera CLI med hjälp av stegen som beskrivs i artikeln Installera Azure CLI . 
- Kontrollera om installationen lyckades genom att öppna ett terminal- eller kommandotolkfönster och köra följande kommando: - az --version- Du bör se versionen av Azure CLI och andra beroende bibliotek som är installerade på datorn.   
- Anteckna CLI:s Python-plats. 
Lägg till certifikat
Exportera och importera sedan Azure Stack Hub-certifikatet för frånkopplade integrerade system. För anslutna integrerade system är certifikatet offentligt signerat och det här steget är inte nödvändigt.
Ansluta med Azure CLI
Det här avsnittet beskriver hur du konfigurerar CLI om du använder Microsoft Entra-ID som identitetshanteringstjänst och använder CLI på en Windows-dator.
Ansluta till Azure Stack Hub
- Registrera din Azure Stack Hub-miljö genom att - az cloud registerköra kommandot .
- Registrera din miljö. Använd följande parametrar när du kör - az cloud register:- Värde - Exempel - Beskrivning - Miljönamn - AzureStackUser - Använd - AzureStackUserför användarmiljön. Om du är operator anger du- AzureStackAdmin.- Resource Manager-slutpunkt - https://management.contoso.onmicrosoft.com- ResourceManagerUrl i integrerade system är: - https://management.<region>.<fqdn>/. Om du har en fråga om den integrerade systemslutpunkten kontaktar du molnoperatören.- Lagringsslutpunkt - local.contoso.onmicrosoft.com - För ett integrerat system använder du en slutpunkt för systemet. - Keyvault-suffix - .vault.contoso.onmicrosoft.com - För ett integrerat system använder du en slutpunkt för systemet. - Resurs-ID för Active Directory-slutpunktsdiagram - https://graph.microsoft.com/- ID för Active Directory-resurs - az cloud register ` -n <environmentname> ` --endpoint-resource-manager "https://management.<region>.<fqdn>" ` --suffix-storage-endpoint "<fqdn>" ` --suffix-keyvault-dns ".vault.<fqdn>"- Mer information finns i registerkommandot i Azure CLI-referensdokumentationen. 
- Ange den aktiva miljön med hjälp av följande kommandon. - az cloud set -n <environmentname>
- Uppdatera din miljökonfiguration så att den använder den specifika API-versionsprofilen för Azure Stack Hub. Om du vill uppdatera konfigurationen kör du följande kommando: - az cloud update --profile 2020-09-01-hybrid
- Logga in på din Azure Stack Hub-miljö med hjälp - az loginav kommandot .- Du kan logga in i Azure Stack Hub-miljön med dina autentiseringsuppgifter eller med ett tjänsthuvudnamn (SPN) som tillhandahålls av molnoperatören. - Logga in som användare:
 - Du kan antingen ange användarnamnet och lösenordet direkt i kommandot eller autentisera - az loginmed hjälp av en webbläsare. Du måste autentisera med hjälp av en webbläsare om ditt konto har multifaktorautentisering aktiverat:- az login -u "user@contoso.onmicrosoft.com" -p 'Password123!' --tenant contoso.onmicrosoft.com- Anmärkning - Om ditt användarkonto har multifaktorautentisering aktiverat använder du - az loginkommandot utan att ange parametern- -u. Om du kör det här kommandot får du en URL och en kod som du måste använda för att autentisera.- Logga in som tjänstens huvudnamn: - Innan du loggar in skapar du ett huvudnamn för tjänsten via Azure-portalen eller CLI och tilldelar det en roll. Logga nu in med följande kommando: - 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>
 
- Kontrollera att din miljö är korrekt inställd och att din miljö är det aktiva molnet: - az cloud list --output table- Du bör se att din miljö visas och att IsActive är - true. Till exempel:- IsActive Name Profile ---------- ----------------- ----------------- False AzureCloud 2020-09-01-hybrid False AzureChinaCloud latest False AzureUSGovernment latest False AzureGermanCloud latest True AzureStackUser 2020-09-01-hybrid
Testa anslutningen
Med allt konfigurerat använder du CLI för att skapa resurser i Azure Stack Hub. Du kan till exempel skapa en resursgrupp för en app och lägga till en virtuell dator. Använd följande kommando för att skapa en resursgrupp med namnet "MyResourceGroup":
az group create -n MyResourceGroup -l local
Om resursgruppen har skapats returnerar föregående kommando följande egenskaper för den nyligen skapade resursen:
{
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/RGCL11",
  "location": "local",
  "name": "RGCLI1",
  " properties ": {
    "provisioningState": "Succeeded"
  },
  "tags ": null
}
Allmänna kända problem
Den allmänna korrigeringen az rest för de flesta problem är att använda kommandot som använder den aktuella Azure Stack-kontexten för att göra ett REST API-anrop för det associerade kommandot med problemet. Lösningarna i följande problemlista kan vanligtvis anpassas för andra Azure CLI-problem så länge dessa problem orsakas av Azure CLI och inte Azure Stack Hub-resursproviders eller andra Azure Stack Hub-tjänster.
Microsoft Graph-problem
Det här är kända Microsoft Graph-problem för Azure CLI 2.40.0 eller senare för Azure Stack Hub. Detta påverkar främst AD FS-miljöer eftersom de inte stöder Microsoft Graph.
- az keyvault createinteragerar med Microsoft Graph. Följande är ett exempel på en lösning för AD FS. I första hand använder lösningen Azure AD Graph för att hämta användarinformation, till exempel- objectIdi stället för Microsoft Graph.- # 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 MySecret- Mer information om KEY Vault REST API finns i KEY Vault REST API-referensen. 
Övriga frågor
Följande är problem som inte är begränsade till specifika versioner eller intervall av versioner av Azure CLI.
- az role assignment createstöds för närvarande inte av Azure CLI för Azure Stack Hub på grund av ett gammalt API-problem. Följande lösning krävs för både Microsoft Entra-ID eller AD FS.- # 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"- Mer information om REST API för rolltilldelning finns i artikeln om rolltilldelningar.