Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez installer Azure CLI pour gérer Azure Stack Hub avec des machines Windows ou Linux. Cet article vous guide tout au long des étapes d’installation et de configuration d’Azure CLI.
Installation de l’interface de ligne de commande Azure
Connectez-vous à votre station de travail de développement et installez l’interface CLI. Azure Stack Hub nécessite la version 2.0 ou ultérieure d’Azure CLI.
Important
En raison d’une CVE affectant les versions d’Azure CLI antérieures à la version 2.40.0, il n’est plus recommandé d’utiliser Azure CLI 2.29.2 pour AD FS dans Azure Stack Hub. Vous pouvez effectuer une mise à jour vers Azure CLI 2.40.0 ou version ultérieure. Toutefois, les clients AD FS peuvent rencontrer des problèmes avec les commandes Azure CLI qui interagissent avec les points de terminaison Microsoft Graph. Cela est dû au fait que Microsoft Graph n’est pas pris en charge pour AD FS. Pour obtenir des solutions de contournement aux problèmes de Microsoft Graph, consultez la section Problèmes connus généraux .
Vous pouvez installer l’interface CLI en suivant les étapes décrites dans l’article Installer Azure CLI .
Pour vérifier si l’installation a réussi, ouvrez une fenêtre d’invite de commandes ou de terminal et exécutez la commande suivante :
az --versionVous devez voir la version d’Azure CLI et d’autres bibliothèques dépendantes installées sur votre ordinateur.
Prenez note de l’emplacement Python de l’interface CLI.
Ajouter un certificat
Exportez, puis importez le certificat Azure Stack Hub pour les systèmes intégrés déconnectés. Pour les systèmes intégrés connectés, le certificat étant signé publiquement, cette étape n’est pas nécessaire.
Se connecter avec Azure CLI
Cette section vous guide tout au long de la configuration de l’interface CLI si vous utilisez Microsoft Entra ID comme service de gestion des identités et utilisez l’interface CLI sur un ordinateur Windows.
Se connecter à Azure Stack Hub
Inscrivez votre environnement Azure Stack Hub en exécutant la
az cloud registercommande.Inscrivez votre environnement. Utilisez les paramètres suivants lors de l’exécution
az cloud register:Valeur Exemple : Descriptif Nom de l’environnement AzureStackUser Utiliser AzureStackUserpour l’environnement utilisateur. Si vous êtes opérateur, spécifiezAzureStackAdmin.Point de terminaison Resource Manager https://management.contoso.onmicrosoft.comResourceManagerUrl dans les systèmes intégrés est : https://management.<region>.<fqdn>/. Si vous avez une question sur le point de terminaison système intégré, contactez votre opérateur cloud.Point de terminaison de stockage local.contoso.onmicrosoft.com Pour un système intégré, utilisez un point de terminaison pour votre système. Suffixe keyvault .vault.contoso.onmicrosoft.com Pour un système intégré, utilisez un point de terminaison pour votre système. ID de ressource de graphe Active Directory du point de terminaison https://graph.microsoft.com/ID de ressource Active Directory. az cloud register ` -n <environmentname> ` --endpoint-resource-manager "https://management.<region>.<fqdn>" ` --suffix-storage-endpoint "<fqdn>" ` --suffix-keyvault-dns ".vault.<fqdn>"Pour plus d’informations, consultez la commande Register dans la documentation de référence d’Azure CLI.
Définissez l’environnement actif à l’aide des commandes suivantes.
az cloud set -n <environmentname>Mettez à jour la configuration de votre environnement pour utiliser le profil de version des API propre à Azure Stack Hub. Pour mettre à jour la configuration, exécutez la commande suivante :
az cloud update --profile 2020-09-01-hybridConnectez-vous à votre environnement Azure Stack Hub à l’aide de la
az logincommande.Vous pouvez vous connecter à l’environnement Azure Stack Hub à l’aide de vos informations d’identification utilisateur ou avec un principal de service (SPN) fourni par votre opérateur cloud.
- Connectez-vous en tant qu’utilisateur :
Vous pouvez spécifier directement le nom d’utilisateur et le mot de passe dans la commande
az login, ou vous authentifier avec un navigateur. Vous devez vous authentifier à l’aide d’un navigateur si votre compte a activé l’authentification multifacteur :az login -u "user@contoso.onmicrosoft.com" -p 'Password123!' --tenant contoso.onmicrosoft.comRemarque
Si votre compte d’utilisateur a activé l’authentification multifacteur, utilisez la
az logincommande sans fournir le-uparamètre. L’exécution de cette commande vous donne une URL et un code que vous devez utiliser pour l’authentification.Connectez-vous en tant que principal de service :
Avant de vous connecter, créez un principal de service via le portail Azure ou l’interface CLI et attribuez-lui un rôle. À présent, connectez-vous à l’aide de la commande suivante :
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>
Vérifiez que votre environnement est correctement défini et que votre environnement est le cloud actif :
az cloud list --output tableVous devez voir que votre environnement est répertorié et IsActive est
true. Par exemple:IsActive Name Profile ---------- ----------------- ----------------- False AzureCloud 2020-09-01-hybrid False AzureChinaCloud latest False AzureUSGovernment latest False AzureGermanCloud latest True AzureStackUser 2020-09-01-hybrid
Tester la connectivité
Avec tout ce qui est configuré, utilisez l’interface CLI pour créer des ressources dans Azure Stack Hub. Par exemple, vous pouvez créer un groupe de ressources pour une application et ajouter une machine virtuelle. Utilisez la commande suivante pour créer un groupe de ressources nommé « MyResourceGroup » :
az group create -n MyResourceGroup -l local
Si le groupe de ressources est créé avec succès, la commande précédente génère les propriétés suivantes de la ressource nouvellement créée :
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/RGCL11",
"location": "local",
"name": "RGCLI1",
" properties ": {
"provisioningState": "Succeeded"
},
"tags ": null
}
Problèmes connus généraux
Le correctif général pour la plupart des problèmes consiste à utiliser la az rest commande qui utilise le contexte Azure Stack actuel pour effectuer un appel d’API REST pour la commande associée au problème. Les solutions de contournement de la liste des problèmes suivants peuvent généralement être adaptées à d’autres problèmes Azure CLI tant que ces problèmes sont causés par Azure CLI et non par des fournisseurs de ressources Azure Stack Hub ou d’autres services Azure Stack Hub.
Problèmes liés à Microsoft Graph
Il s’agit des problèmes Connus de Microsoft Graph pour Azure CLI 2.40.0 ou ultérieur, pour Azure Stack Hub. Cela affecte principalement les environnements AD FS, car ils ne prennent pas en charge Microsoft Graph.
az keyvault createinteragit avec Microsoft Graph. Voici un exemple de solution de contournement pour AD FS. Principalement, la solution de contournement utilise Azure AD Graph pour récupérer des informations utilisateur telles que cellesobjectIdde 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 MySecretPour plus d’informations sur l’API REST Key Vault, consultez la référence de l’API REST Key Vault.
Autres problèmes
Les problèmes suivants ne sont pas limités aux versions ou plages spécifiques de versions d’Azure CLI.
az role assignment createn’est actuellement pas pris en charge par Azure CLI pour Azure Stack Hub en raison d’un ancien problème d’API. La solution de contournement suivante est requise pour Microsoft Entra ID ou 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"Pour plus d’informations sur l’API REST d’attribution de rôle, consultez l’article sur les attributions de rôles.