Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U kunt de Azure CLI installeren om Azure Stack Hub te beheren met een Windows- of Linux-computer. In dit artikel worden de stappen beschreven voor het installeren en instellen van Azure CLI.
Azure-CLI installeren
Meld u aan bij uw ontwikkelwerkstation en installeer CLI. Voor Azure Stack Hub is versie 2.0 of hoger van Azure CLI vereist.
Belangrijk
Vanwege een CVE die van invloed is op Azure CLI-versies van 2.40.0, wordt het niet meer aanbevolen om Azure CLI 2.29.2 te gebruiken voor AD FS in Azure Stack Hub. U kunt bijwerken naar Azure CLI 2.40.0 of hoger. AD FS-klanten kunnen echter problemen ondervinden met Azure CLI-opdrachten die communiceren met Microsoft Graph-eindpunten. Dit komt omdat Microsoft Graph niet wordt ondersteund voor AD FS. Zie de sectie Algemene bekende problemen voor tijdelijke oplossingen voor Problemen met Microsoft Graph.
U kunt de CLI installeren met behulp van de stappen die worden beschreven in het artikel Azure CLI installeren .
Als u wilt controleren of de installatie is geslaagd, opent u een terminal- of opdrachtpromptvenster en voert u de volgende opdracht uit:
az --version
U ziet nu de versie van Azure CLI en andere afhankelijke bibliotheken die op uw computer zijn geïnstalleerd.
Noteer de locatie van Python voor de CLI.
Certificaat toevoegen
Exporteer en importeer vervolgens het Azure Stack Hub-certificaat voor niet-verbonden geïntegreerde systemen. Voor verbonden geïntegreerde systemen is het certificaat openbaar ondertekend en deze stap is niet nodig.
Verbinding maken met Azure CLI
In deze sectie wordt u begeleid bij het instellen van CLI als u Microsoft Entra ID gebruikt als identiteitsbeheerservice en cli gebruikt op een Windows-computer.
Verbinding maken met Azure Stack Hub
Registreer uw Azure Stack Hub-omgeving door de opdracht uit te
az cloud register
voeren.Registreer uw omgeving. Gebruik de volgende parameters bij het uitvoeren
az cloud register
:Waarde Voorbeeld Beschrijving Naam van de omgeving AzureStackUser Gebruik AzureStackUser
voor de gebruikersomgeving. Als u operator bent, geeft uAzureStackAdmin
op.Resource Manager-eindpunt https://management.contoso.onmicrosoft.com
De ResourceManagerUrl in geïntegreerde systemen is: https://management.<region>.<fqdn>/
. Als u een vraag hebt over het geïntegreerde systeemeindpunt, neemt u contact op met uw cloudoperator.Opslageindpunt local.contoso.onmicrosoft.com Gebruik voor een geïntegreerd systeem een eindpunt voor uw systeem. Keyvault-achtervoegsel .vault.contoso.onmicrosoft.com Gebruik voor een geïntegreerd systeem een eindpunt voor uw systeem. Resource-id van eindpunt active directory-grafiek https://graph.microsoft.com/
De Active Directory-resource-id. az cloud register ` -n <environmentname> ` --endpoint-resource-manager "https://management.<region>.<fqdn>" ` --suffix-storage-endpoint "<fqdn>" ` --suffix-keyvault-dns ".vault.<fqdn>"
Zie de registeropdracht in de referentiedocumentatie van Azure CLI voor meer informatie.
Stel de actieve omgeving in met behulp van de volgende opdrachten.
az cloud set -n <environmentname>
Werk uw omgevingsconfiguratie bij om het specifieke API-versieprofiel van Azure Stack Hub te gebruiken. Voer de volgende opdracht uit om de configuratie bij te werken:
az cloud update --profile 2020-09-01-hybrid
Meld u aan bij uw Azure Stack Hub-omgeving met behulp van de
az login
opdracht.U kunt zich aanmelden bij de Azure Stack Hub-omgeving met behulp van uw gebruikersreferenties of met een service-principal (SPN) die u door uw cloudoperator hebt verstrekt.
- Meld u aan als gebruiker:
U kunt de gebruikersnaam en het wachtwoord rechtstreeks opgeven met de opdracht
az login
of verifiëren met behulp van een browser. U moet verifiëren met behulp van een browser als voor uw account meervoudige verificatie is ingeschakeld:az login -u "user@contoso.onmicrosoft.com" -p 'Password123!' --tenant contoso.onmicrosoft.com
Opmerking
Als voor uw gebruikersaccount meervoudige verificatie is ingeschakeld, gebruikt u de
az login
opdracht zonder de-u
parameter op te geven. Als u deze opdracht uitvoert, krijgt u een URL en een code die u moet gebruiken om te verifiëren.Meld u aan als service-principal:
Voordat u zich aanmeldt, maakt u een service-principal via Azure Portal of CLI en wijst u deze een rol toe. Meld u nu aan met behulp van de volgende opdracht:
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>
Controleer of uw omgeving juist is ingesteld en of uw omgeving de actieve cloud is:
az cloud list --output table
U ziet dat uw omgeving wordt vermeld en IsActive is
true
. Voorbeeld:IsActive Name Profile ---------- ----------------- ----------------- False AzureCloud 2020-09-01-hybrid False AzureChinaCloud latest False AzureUSGovernment latest False AzureGermanCloud latest True AzureStackUser 2020-09-01-hybrid
De connectiviteit testen
Wanneer alles is ingesteld, gebruikt u CLI om resources te maken in Azure Stack Hub. U kunt bijvoorbeeld een resourcegroep voor een app maken en een VIRTUELE machine toevoegen. Gebruik de volgende opdracht om een resourcegroep met de naam MyResourceGroup te maken:
az group create -n MyResourceGroup -l local
Als de resourcegroep is gemaakt, voert de vorige opdracht de volgende eigenschappen uit van de zojuist gemaakte resource:
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/RGCL11",
"location": "local",
"name": "RGCLI1",
" properties ": {
"provisioningState": "Succeeded"
},
"tags ": null
}
Algemene bekende problemen
De algemene oplossing voor de meeste problemen is het gebruik van de az rest
opdracht die gebruikmaakt van de huidige Azure Stack-context, om een REST API-aanroep te maken voor de bijbehorende opdracht met het probleem. De tijdelijke oplossingen in de volgende lijst met problemen kunnen over het algemeen worden aangepast voor andere Azure CLI-problemen zolang deze problemen worden veroorzaakt door Azure CLI en niet door Azure Stack Hub-resourceproviders of andere Azure Stack Hub-services.
Problemen met Microsoft Graph
Dit zijn de bekende Problemen met Microsoft Graph voor Azure CLI 2.40.0 of hoger voor Azure Stack Hub. Dit is voornamelijk van invloed op AD FS-omgevingen, omdat ze geen ondersteuning bieden voor Microsoft Graph.
az keyvault create
communiceert met Microsoft Graph. Hier volgt een voorbeeld van een tijdelijke oplossing voor AD FS. De tijdelijke oplossing maakt voornamelijk gebruik van Azure AD Graph om gebruikersgegevens op te halen, zoals deobjectId
in plaats van 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
Andere problemen
Hieronder volgen problemen die niet beperkt zijn tot specifieke versies of bereiken van versies van Azure CLI.
az role assignment create
wordt momenteel niet ondersteund door Azure CLI voor Azure Stack Hub vanwege een oud API-probleem. De volgende tijdelijke oplossing is vereist voor zowel Microsoft Entra ID als 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"
Zie het artikel over roltoewijzingen voor meer informatie over de REST API voor roltoewijzingen.