Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejs wiersza polecenia platformy Azure można zainstalować w celu zarządzania usługą Azure Stack Hub przy użyciu maszyn z systemem Windows lub Linux. W tym artykule przedstawiono procedurę instalowania i konfigurowania interfejsu wiersza polecenia platformy Azure.
Instalowanie CLI Azure
Zaloguj się do stacji roboczej do celów deweloperskich i zainstaluj interfejs wiersza polecenia (CLI). Usługa Azure Stack Hub wymaga wersji 2.0 lub nowszej interfejsu wiersza polecenia platformy Azure.
Ważne
Ze względu na CVE dotyczące wersji Azure CLI wcześniejszych niż 2.40.0, nie zaleca się już używania Azure CLI 2.29.2 dla usług AD FS w Azure Stack Hub. Możesz zaktualizować interfejs wiersza polecenia platformy Azure w wersji 2.40.0 lub nowszej. Jednak klienci usług AD FS mogą napotkać problemy z poleceniami interfejsu wiersza polecenia platformy Azure, które współdziałają z punktami końcowymi programu Microsoft Graph. Dzieje się tak, ponieważ program Microsoft Graph nie jest obsługiwany w usługach AD FS. Aby uzyskać obejścia problemów z programem Microsoft Graph, zobacz sekcję Ogólne znane problemy .
Interfejs wiersza polecenia można zainstalować, wykonując kroki opisane w artykule Instalowanie interfejsu wiersza polecenia platformy Azure .
Aby sprawdzić, czy instalacja zakończyła się pomyślnie, otwórz okno terminalu lub wiersza polecenia i uruchom następujące polecenie:
az --versionPowinna zostać wyświetlona wersja interfejsu wiersza polecenia platformy Azure i inne zależne biblioteki zainstalowane na komputerze.
Zanotuj lokalizację języka Python interfejsu wiersza polecenia.
Dodawanie certyfikatu
Wyeksportuj, a następnie zaimportuj certyfikat usługi Azure Stack Hub dla odłączonych systemów zintegrowanych. W przypadku połączonych systemów zintegrowanych certyfikat jest podpisany publicznie i ten krok nie jest konieczny.
Nawiązywanie połączenia za pomocą interfejsu wiersza polecenia platformy Azure
- Microsoft Entra ID w systemie Windows
- Usługi AD FS w systemie Windows
- Microsoft Entra ID w systemie Linux
- AD FS Linux
W tej sekcji przedstawiono sposób konfigurowania interfejsu wiersza polecenia, jeśli używasz identyfikatora Entra firmy Microsoft jako usługi zarządzania tożsamościami i używasz interfejsu wiersza polecenia na maszynie z systemem Windows.
Nawiązywanie połączenia z usługą Azure Stack Hub
Zarejestruj środowisko usługi Azure Stack Hub, uruchamiając
az cloud registerpolecenie .Zarejestruj swoje środowisko. Użyj następujących parametrów podczas uruchamiania
az cloud register.Wartość Przykład Opis Nazwa środowiska AzureStackUser Użyj AzureStackUserdla środowiska użytkownika. Jeśli jesteś operatorem, określ wartośćAzureStackAdmin.Punkt końcowy usługi Resource Manager https://management.contoso.onmicrosoft.comResourceManagerUrl w zintegrowanych systemach to: https://management.<region>.<fqdn>/. Jeśli masz pytanie dotyczące zintegrowanego punktu końcowego systemu, skontaktuj się z operatorem chmury.Punkt końcowy magazynu local.contoso.onmicrosoft.com W przypadku zintegrowanego systemu użyj punktu końcowego dla systemu. Sufiks usługi Keyvault .vault.contoso.onmicrosoft.com W przypadku zintegrowanego systemu użyj punktu końcowego dla systemu. Identyfikator zasobu grafu usługi Active Directory punktu końcowego https://graph.microsoft.com/Identyfikator zasobu usługi Active Directory. az cloud register ` -n <environmentname> ` --endpoint-resource-manager "https://management.<region>.<fqdn>" ` --suffix-storage-endpoint "<fqdn>" ` --suffix-keyvault-dns ".vault.<fqdn>"Aby uzyskać więcej informacji, zobacz polecenie register w dokumentacji referencyjnej interfejsu wiersza polecenia platformy Azure.
Ustaw aktywne środowisko przy użyciu następujących poleceń.
az cloud set -n <environmentname>Zaktualizuj konfigurację środowiska, aby używać profilu wersji interfejsu API specyficznego dla usługi Azure Stack Hub. Aby zaktualizować konfigurację, uruchom następujące polecenie:
az cloud update --profile 2020-09-01-hybridZaloguj się do środowiska usługi Azure Stack Hub przy użyciu
az loginpolecenia .Możesz zalogować się do środowiska Azure Stack Hub przy użyciu poświadczeń użytkownika lub głównej usługi (SPN) zapewnionej przez operatora chmury.
- Zaloguj się jako użytkownik:
Możesz określić nazwę użytkownika i hasło bezpośrednio w poleceniu
az loginlub uwierzytelnić się przy użyciu przeglądarki. Musisz uwierzytelnić się przy użyciu przeglądarki, jeśli twoje konto ma włączone uwierzytelnianie wieloskładnikowe:az login -u "user@contoso.onmicrosoft.com" -p 'Password123!' --tenant contoso.onmicrosoft.comUwaga / Notatka
Jeśli konto użytkownika ma włączone uwierzytelnianie wieloskładnikowe, użyj
az loginpolecenia bez podawania parametru-u. Uruchomienie tego polecenia zapewnia adres URL i kod, którego należy użyć do uwierzytelniania.Zaloguj się jako podmiot usługi:
Najpierw utwórz jednostkę usługi za pośrednictwem Azure Portal lub CLI i przypisz jej rolę, zanim się zalogujesz. Teraz zaloguj się przy użyciu następującego polecenia:
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>
Sprawdź, czy środowisko jest poprawnie ustawione i czy środowisko jest aktywną chmurą:
az cloud list --output tablePowinieneś zobaczyć, że twoje środowisko jest wymienione, a IsActive to
true. Przykład:IsActive Name Profile ---------- ----------------- ----------------- False AzureCloud 2020-09-01-hybrid False AzureChinaCloud latest False AzureUSGovernment latest False AzureGermanCloud latest True AzureStackUser 2020-09-01-hybrid
Testowanie łączności
Po skonfigurowaniu wszystkich elementów użyj interfejsu wiersza polecenia, aby utworzyć zasoby w usłudze Azure Stack Hub. Możesz na przykład utworzyć grupę zasobów dla aplikacji i dodać maszynę wirtualną. Użyj następującego polecenia, aby utworzyć grupę zasobów o nazwie "MyResourceGroup":
az group create -n MyResourceGroup -l local
Jeśli grupa zasobów zostanie utworzona pomyślnie, poprzednie polecenie wyświetli następujące właściwości nowo utworzonego zasobu:
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/RGCL11",
"location": "local",
"name": "RGCLI1",
" properties ": {
"provisioningState": "Succeeded"
},
"tags ": null
}
Ogólne znane problemy
Ogólną poprawką dla większości problemów jest użycie az rest polecenia korzystającego z bieżącego kontekstu usługi Azure Stack w celu wywołania interfejsu API REST dla skojarzonego polecenia z tym problemem. Obejścia na poniższej liście problemów można ogólnie dostosować do innych problemów z interfejsem wiersza polecenia platformy Azure, o ile te problemy są spowodowane przez interfejs wiersza polecenia platformy Azure, a nie dostawców zasobów usługi Azure Stack Hub lub innych usług Azure Stack Hub.
Problemy z programem Microsoft Graph
Są to znane problemy z programem Microsoft Graph dla interfejsu wiersza polecenia platformy Azure w wersji 2.40.0 lub nowszej dla usługi Azure Stack Hub. Dotyczy to głównie środowisk usług AD FS, ponieważ nie obsługują programu Microsoft Graph.
az keyvault createwspółdziała z programem Microsoft Graph. Przykład obejścia dla Active Directory Federation Services (AD FS) jest przedstawiony poniżej. Przede wszystkim obejście używa programu Azure AD Graph do pobierania informacji o użytkowniku, takich jakobjectIdzamiast programu 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 MySecretAby uzyskać więcej informacji na temat interfejsu API REST usługi Key Vault, zobacz dokumentację interfejsu API REST usługi Key Vault.
Inne problemy
Poniżej przedstawiono problemy nie ograniczone do określonych wersji lub zakresów wersji interfejsu wiersza polecenia platformy Azure.
az role assignment createnie jest obecnie obsługiwany przez Azure CLI dla usługi Azure Stack Hub z powodu problemu ze starym interfejsem API. Następujące obejście jest wymagane zarówno dla Microsoft Entra ID, albo 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"Aby uzyskać więcej informacji na temat interfejsu API REST przypisywania ról, zobacz artykuł dotyczący przypisań ról.