Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure CLI můžete nainstalovat ke správě služby Azure Stack Hub pomocí počítačů s Windows nebo Linuxem. Tento článek vás provede postupem instalace a nastavení Azure CLI.
Instalace Azure CLI
Přihlaste se k vývojové pracovní stanici a nainstalujte rozhraní příkazového řádku. Azure Stack Hub vyžaduje azure CLI verze 2.0 nebo novější.
Důležité
Vzhledem k CVE ovlivňujícím verze Azure CLI starší než 2.40.0 už není doporučeno používat Azure CLI 2.29.2 pro AD FS ve službě Azure Stack Hub. Můžete aktualizovat na Azure CLI 2.40.0 nebo novější. Zákazníci služby AD FS ale můžou narazit na problémy s příkazy Azure CLI, které pracují s koncovými body Microsoft Graphu. Důvodem je to, že Služba AD FS nepodporuje Microsoft Graph. Alternativní řešení problémů s Microsoft Graphem najdete v části Obecné známé problémy .
Rozhraní příkazového řádku můžete nainstalovat pomocí kroků popsaných v článku Instalace Azure CLI .
Pokud chcete ověřit, jestli instalace proběhla úspěšně, otevřete okno terminálu nebo příkazového řádku a spusťte následující příkaz:
az --versionMěla by se zobrazit verze Azure CLI a dalších závislých knihoven nainstalovaných na vašem počítači.
Poznamenejte si umístění Pythonu v rozhraní příkazového řádku.
Přidání certifikátu
Exportujte a pak importujte certifikát služby Azure Stack Hub pro odpojené integrované systémy. U připojených integrovaných systémů je certifikát veřejně podepsaný a tento krok není nutný.
Připojení pomocí Azure CLI
Tato část vás provede nastavením rozhraní příkazového řádku, pokud jako službu správy identit používáte ID Microsoft Entra a používáte rozhraní příkazového řádku na počítači s Windows.
Připojení ke službě Azure Stack Hub
Spuštěním
az cloud registerpříkazu zaregistrujte prostředí služby Azure Stack Hub.Zaregistrujte své prostředí. Při spuštění
az cloud registerpoužijte následující parametry:Hodnota Příklad Popis Název prostředí AzureStackUser Používá se AzureStackUserpro uživatelské prostředí. Pokud jste operátor, zadejteAzureStackAdmin.Koncový bod Resource Manageru https://management.contoso.onmicrosoft.comResourceManagerUrl v integrovaných systémech je: https://management.<region>.<fqdn>/. Pokud máte dotaz ohledně koncového bodu integrovaného systému, obraťte se na svého operátora cloudu.Koncový bod úložiště local.contoso.onmicrosoft.com Pro integrovaný systém použijte koncový bod pro váš systém. Keyvault přípona .vault.contoso.onmicrosoft.com Pro integrovaný systém použijte koncový bod pro váš systém. ID prostředku koncového bodu grafu služby Active Directory https://graph.microsoft.com/ID prostředku Active Directory. az cloud register ` -n <environmentname> ` --endpoint-resource-manager "https://management.<region>.<fqdn>" ` --suffix-storage-endpoint "<fqdn>" ` --suffix-keyvault-dns ".vault.<fqdn>"Další informace najdete v referenční dokumentaci k azure CLI v příkazu register .
Nastavte aktivní prostředí pomocí následujících příkazů.
az cloud set -n <environmentname>Aktualizujte konfiguraci prostředí tak, aby používala profil konkrétní verze rozhraní API služby Azure Stack Hub. Konfiguraci aktualizujete spuštěním následujícího příkazu:
az cloud update --profile 2020-09-01-hybridPřihlaste se k prostředí služby Azure Stack Hub pomocí
az loginpříkazu.K prostředí služby Azure Stack Hub se můžete přihlásit pomocí přihlašovacích údajů uživatele nebo pomocí instančního objektu (SPN) poskytnutého vaším operátorem cloudu.
- Přihlaste se jako uživatel:
Uživatelské jméno a heslo můžete zadat buď přímo v
az loginpříkazu, nebo se ověřit pomocí prohlížeče. Pokud má váš účet povolené vícefaktorové ověřování, musíte se ověřit pomocí prohlížeče:az login -u "user@contoso.onmicrosoft.com" -p 'Password123!' --tenant contoso.onmicrosoft.comPoznámka:
Pokud má váš uživatelský účet povolené vícefaktorové ověřování, použijte
az loginpříkaz bez zadání parametru-u. Spuštěním tohoto příkazu získáte adresu URL a kód, který musíte použít k ověření.Přihlaste se jako service principal:
Než se přihlásíte, vytvořte instanční objekt prostřednictvím webu Azure Portal nebo rozhraní příkazového řádku a přiřaďte mu roli. Teď se přihlaste pomocí následujícího příkazu:
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>
Ověřte, že je vaše prostředí správně nastavené a jestli je vaše prostředí aktivním cloudem:
az cloud list --output tableMěli byste vidět, že je vaše prostředí uvedené a IsActive je
true. Například:IsActive Name Profile ---------- ----------------- ----------------- False AzureCloud 2020-09-01-hybrid False AzureChinaCloud latest False AzureUSGovernment latest False AzureGermanCloud latest True AzureStackUser 2020-09-01-hybrid
Testování připojení
Se vším, co je nastavené, můžete pomocí rozhraní příkazového řádku vytvářet prostředky ve službě Azure Stack Hub. Můžete například vytvořit skupinu prostředků pro aplikaci a přidat virtuální počítač. Pomocí následujícího příkazu vytvořte skupinu prostředků s názvem MyResourceGroup:
az group create -n MyResourceGroup -l local
Pokud se skupina prostředků úspěšně vytvoří, předchozí příkaz vypíše následující vlastnosti nově vytvořeného prostředku:
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/RGCL11",
"location": "local",
"name": "RGCLI1",
" properties ": {
"provisioningState": "Succeeded"
},
"tags ": null
}
Obecné známé problémy
Obecná oprava většiny problémů spočívá v použití az rest příkazu, který používá aktuální kontext služby Azure Stack, k volání rozhraní REST API pro přidružený příkaz k problému. Alternativní řešení v následujícím seznamu problémů se obecně dají přizpůsobit pro jiné problémy Azure CLI, pokud tyto problémy způsobují Azure CLI, a ne poskytovatelé prostředků služby Azure Stack Hub ani jiné služby Azure Stack Hub.
Problémy s Microsoft Graphem
Jedná se o známé problémy s Microsoft Graphem pro Azure CLI 2.40.0 nebo novější pro Azure Stack Hub. To má primárně vliv na prostředí služby AD FS, protože nepodporují Microsoft Graph.
az keyvault createkomunikuje s Microsoft Graphem. Následuje příklad alternativního řešení pro službu AD FS. Alternativní řešení primárně používá Azure AD Graph k načtení informací o uživateli, jako jeobjectId, místo 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 MySecretDalší informace o rozhraní REST API služby Key Vault najdete v referenčních informacích k rozhraní REST API služby Key Vault.
Další problémy
Níže jsou uvedené problémy, které nejsou omezené na konkrétní verze nebo rozsahy verzí Azure CLI.
az role assignment createnení v současné době podporován Azure CLI pro Azure Stack Hub kvůli problému se starým rozhraním API. Pro MICROSOFT Entra ID nebo AD FS se vyžaduje následující alternativní řešení.# 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"Další informace o rozhraní REST API přiřazení rolí najdete v článku přiřazení rolí.