Az Azure CLI telepítése az Azure Stack Hubban
Telepítheti az Azure CLI-t az Azure Stack Hub windowsos vagy Linux rendszerű gépeken való kezeléséhez. Ez a cikk végigvezeti az Azure CLI telepítésének és beállításának lépésein.
Telepítse az Azure CLI-t
Jelentkezzen be a fejlesztői munkaállomásra, és telepítse a parancssori felületet. Az Azure Stack Hubhoz az Azure CLI 2.0-s vagy újabb verziója szükséges.
Fontos
Mivel a CVE a 2.40.0-snál korábbi Azure CLI-verziókat érinti, már nem ajánlott az Azure CLI 2.29.2 for AD FS használata az Azure Stack Hubban. Frissíthet az Azure CLI 2.40.0-s vagy újabb verziójára. Az AD FS-ügyfelek azonban problémákba ütközhetnek a Microsoft Graph-végpontokkal kommunikáló Azure CLI-parancsokkal kapcsolatban. Ennek az az oka, hogy az AD FS nem támogatja a Microsoft Graphot. A Microsoft Graph-problémák kerülő megoldásait az Általános ismert problémák című szakaszban találja.
A PARANCSSORI-t az Azure CLI telepítése című cikk lépéseit követve telepítheti.
A telepítés sikerességének ellenőrzéséhez nyisson meg egy terminált vagy egy parancssori ablakot, és futtassa a következő parancsot:
az --version
Látnia kell az Azure CLI verzióját és a számítógépre telepített egyéb függő kódtárakat.
Jegyezze fel a parancssori felület Python-helyét.
Tanúsítvány hozzárendelése
Exportálja, majd importálja az Azure Stack Hub-tanúsítványt a leválasztott integrált rendszerekhez és az ASDK-hoz. Csatlakoztatott integrált rendszerek esetén a tanúsítvány nyilvánosan alá van írva, és erre a lépésre nincs szükség. Útmutatásért lásd: Tanúsítványok beállítása az Azure CLI-hez az Azure Stack Development Kiten.
Csatlakozás az Azure CLI-vel
- Microsoft Entra azonosító Windows rendszeren
- AD FS Windows rendszeren
- Microsoft Entra-azonosító Linuxon
- AD FS Linux
Ez a szakasz végigvezeti a parancssori felület beállításán, ha Microsoft Entra ID-t használ identitáskezelési szolgáltatásként, és parancssori felületet használ Egy Windows rendszerű gépen.
Csatlakozás az Azure Stack Hubhoz
Ha az ASDK-t használja, bízzon meg az Azure Stack Hub hitelesítésszolgáltató főtanúsítványában. Útmutatásért lásd: Megbízható a tanúsítvány.
Regisztrálja az Azure Stack Hub-környezetet a
az cloud register
parancs futtatásával.Regisztrálja a környezetet. Futtassa
az cloud register
a következő paramétereket:Érték Példa Leírás Környezet neve AzureStackUser Használja AzureStackUser
a felhasználói környezethez. Ha Ön operátor, adja meg a értéketAzureStackAdmin
.Resource Manager végpont https://management.contoso.onmicrosoft.com
Az ASDK-ban a ResourceManagerUrl a következő: https://management.local.azurestack.external/
Az integrált rendszerekben a ResourceManagerUrl :https://management.<region>.<fqdn>/
Ha kérdése van az integrált rendszervégponttal kapcsolatban, lépjen kapcsolatba a felhőszolgáltatóval.Tárolási végpont local.contoso.onmicrosoft.com local.azurestack.external
az ASDK-hoz tartozik. Integrált rendszer esetén használjon végpontot a rendszerhez.Keyvault-utótag .vault.contoso.onmicrosoft.com .vault.local.azurestack.external
az ASDK-hoz tartozik. Integrált rendszer esetén használjon végpontot a rendszerhez.Végpont Active Directory-gráf erőforrás-azonosítója https://graph.windows.net/ Az Active Directory erőforrás-azonosító. az cloud register ` -n <environmentname> ` --endpoint-resource-manager "https://management.<region>.<fqdn>" ` --suffix-storage-endpoint "<fqdn>" ` --suffix-keyvault-dns ".vault.<fqdn>"
A register parancsra vonatkozó hivatkozást az Azure CLI referenciadokumentációjában találja.
Állítsa be az aktív környezetet az alábbi parancsokkal.
az cloud set -n <environmentname>
Frissítse a környezeti konfigurációt az Azure Stack Hub-specifikus API-verzióprofil használatára. A konfiguráció frissítéséhez futtassa a következő parancsot:
az cloud update --profile 2020-09-01-hybrid
Jelentkezzen be az Azure Stack Hub-környezetbe az
az login
paranccsal.Az Azure Stack Hub-környezetbe a felhasználói hitelesítő adataival vagy a felhőszolgáltató által biztosított egyszerű szolgáltatásnévvel (SPN) jelentkezhet be.
Bejelentkezés felhasználóként:
A felhasználónevet és a jelszót közvetlenül a
az login
parancson belül adhatja meg, vagy egy böngésző használatával végezhet hitelesítést. Az utóbbit akkor kell elvégeznie, ha a fiókjában engedélyezve van a többtényezős hitelesítés:az login -u "user@contoso.onmicrosoft.com" -p 'Password123!' --tenant contoso.onmicrosoft.com
Megjegyzés
Ha a felhasználói fiókjában engedélyezve van a többtényezős hitelesítés, használja a
az login
parancsot a-u
paraméter megadása nélkül. A parancs futtatásával egy URL-címet és egy kódot kap, amelyet a hitelesítéshez kell használnia.Jelentkezzen be szolgáltatásnévként:
Bejelentkezés előtt hozzon létre egy szolgáltatásnevet a Azure Portal vagy a parancssori felületen, és rendeljen hozzá egy szerepkört. Most jelentkezzen be a következő paranccsal:
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>
Ellenőrizze, hogy a környezet helyesen van-e beállítva, és hogy a környezet az aktív felhő-e.
az cloud list --output table
Látnia kell, hogy a környezet megjelenik a listában, az IsActive pedig .
true
Például:IsActive Name Profile ---------- ----------------- ----------------- False AzureCloud 2020-09-01-hybrid False AzureChinaCloud latest False AzureUSGovernment latest False AzureGermanCloud latest True AzureStackUser 2020-09-01-hybrid
Kapcsolat tesztelése
Ha minden beállítás be van állítva, a parancssori felülettel erőforrásokat hozhat létre az Azure Stack Hubon belül. Létrehozhat például egy erőforráscsoportot egy alkalmazáshoz, és hozzáadhat egy virtuális gépet. A következő paranccsal hozzon létre egy "MyResourceGroup" nevű erőforráscsoportot:
az group create -n MyResourceGroup -l local
Ha az erőforráscsoport létrehozása sikeresen megtörtént, az előző parancs az újonnan létrehozott erőforrás következő tulajdonságait adja ki:
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/RGCL11",
"location": "local",
"name": "RGCLI1",
" properties ": {
"provisioningState": "Succeeded"
},
"tags ": null
}
Általános ismert problémák
A legtöbb probléma általános megoldása az, hogy az az rest
aktuális Azure Stack-környezetet használó parancsot használja, és REST API-hívást kezdeményez a problémához társított parancshoz. Az alábbi problémák listájában szereplő kerülő megoldások általában alkalmazhatók más Azure CLI-problémákhoz, feltéve, hogy ezeket a problémákat az Azure CLI okozza, és nem az Azure Stack Hub erőforrás-szolgáltatói vagy más Azure Stack Hub-szolgáltatások.
Microsoft Graph-problémák
Ezek az Azure Stack Hubhoz készült Azure CLI 2.40.0-s vagy újabb verziójával kapcsolatos ismert Microsoft Graph-problémák. Ez elsősorban az ADFS-környezeteket érinti, mivel nem támogatja a Microsoft Graphot.
az keyvault create
használja a Microsoft Graphot. Az alábbiakban egy példa kerülő megoldás található az ADFS-hez. A kerülő megoldás elsősorban a Azure AD Graph használatával kéri le a felhasználói adatokat, például aobjectId
Microsoft Graph helyett.# 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
A KEY VAULT REST API-val kapcsolatos további információkért lásd a Key Vault REST API-referenciát.
Egyéb problémák
Az alábbi problémák nem korlátozódnak az Azure CLI adott verzióira vagy verzióinak tartományára.
-
az role assignment create
az Azure CLI jelenleg nem támogatja az Azure Stack Hubhoz egy régi API-probléma miatt. A Microsoft Entra azonosítóhoz és az ADFS-hez egyaránt az alábbi kerülő megoldás szükséges.
A szerepkör-hozzárendelés REST API-val kapcsolatos további információkért lásd a szerepkör-hozzárendeléseket ismertető cikket.# 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"