Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Stack Hub'ı windows veya Linux makineleriyle yönetmek için Azure CLI'yi yükleyebilirsiniz. Bu makale, Azure CLI'yı yükleme ve ayarlama adımlarını gösterir.
Azure CLI'yı yükleme
Geliştirme iş istasyonunuzda oturum açın ve CLI'yi yükleyin. Azure Stack Hub, Azure CLI'nın 2.0 veya sonraki bir sürümünü gerektirir.
Önemli
2.40.0'dan önceki Azure CLI sürümlerini etkileyen bir CVE nedeniyle artık Azure Stack Hub'da AD FS için Azure CLI 2.29.2 kullanmanız önerilmez. Azure CLI 2.40.0 veya üzeri sürümlere güncelleştirebilirsiniz. Ancak AD FS müşterileri, Microsoft Graph uç noktalarıyla etkileşim kuran Azure CLI komutlarıyla ilgili sorunlarla karşılaşabilir. Bunun nedeni, Microsoft Graph'ın AD FS için desteklenmemesidir. Microsoft Graph sorunlarının geçici çözümleri için Genel bilinen sorunlar bölümüne bakın.
Azure CLI'yi yükleme makalesinde açıklanan adımları kullanarak CLI'yi yükleyebilirsiniz.
Yüklemenin başarılı olup olmadığını doğrulamak için bir terminal veya komut istemi penceresi açın ve aşağıdaki komutu çalıştırın:
az --versionAzure CLI sürümünü ve bilgisayarınızda yüklü olan diğer bağımlı kitaplıkları görmeniz gerekir.
CLI'nın Python konumunu not edin.
Sertifika ekle
Bağlantısı kesilmiş tümleşik sistemler için Azure Stack Hub sertifikasını dışarı aktarın ve içeri aktarın. Bağlı tümleşik sistemler için sertifika genel olarak imzalanır ve bu adım gerekli değildir.
Azure CLI ile bağlanma
Bu bölümde, kimlik yönetimi hizmeti olarak Microsoft Entra ID kullanıyorsanız ve CLI'yi bir Windows makinesinde kullanıyorsanız CLI'yi ayarlama konusunda size yol gösterilir.
Azure Stack Hub'a bağlanma
komutunu çalıştırarak
az cloud registerAzure Stack Hub ortamınızı kaydedin. ileaz loginoturum açabilmeniz için azure CLI'nin varsayılan Azure genel bulutu yerine Azure Stack Hub örneğinizi hedef alacak şekilde yapılandırılması gerekir. İlk olarak komutunu kullanarakaz cloud registerAzure Stack Hub ortamınızı kaydedin ve CLI'nın istekleri nereye göndereceği hakkında bilgi sahibi olması için uç noktalarını tanımlayın. Bundan sonra, ortamı ayarlayabilir ve ardından kimlik doğrulaması için kullanabilirsinizaz login.Ortamınızı kaydedin. çalıştırırken
az cloud registeraşağıdaki parametreleri kullanın:Değer Örnek Açıklama Ortam adı AzureStackUser Kullanıcı ortamı için kullanın AzureStackUser. Operatörseniz belirtinAzureStackAdmin.Resource Manager uç noktası https://management.contoso.onmicrosoft.comTümleşik sistemlerde ResourceManagerUrl şöyledir: https://management.<region>.<fqdn>/. Tümleşik sistem uç noktası hakkında sorularınız varsa bulut operatörünüze başvurun.Depolama uç noktası local.contoso.onmicrosoft.com Tümleşik bir sistem için sisteminiz için bir uç nokta kullanın. Keyvault soneki .vault.contoso.onmicrosoft.com Tümleşik bir sistem için sisteminiz için bir uç nokta kullanın. Uç nokta etkin dizin grafik kaynak kimliği https://graph.microsoft.com/Active Directory kaynak kimliği. az cloud register ` -n <environmentname> ` --endpoint-resource-manager "https://management.<region>.<fqdn>" ` --suffix-storage-endpoint "<fqdn>" ` --suffix-keyvault-dns ".vault.<fqdn>"Daha fazla bilgi için Azure CLI referans belgelerindeki register komutuna bakın.
Aşağıdaki komutları kullanarak etkin ortamı ayarlayın.
az cloud set -n <environmentname>Ortam yapılandırmanızı Azure Stack Hub'a özgü API sürümü profilini kullanacak şekilde güncelleştirin. Yapılandırmayı güncelleştirmek için aşağıdaki komutu çalıştırın:
az cloud update --profile 2020-09-01-hybridkomutunu kullanarak
az loginAzure Stack Hub ortamınızda oturum açın.Kullanıcı kimlik bilgilerinizi kullanarak veya bulut operatörünüz tarafından size sağlanan bir hizmet sorumlusuyla (SPN) Azure Stack Hub ortamında oturum açabilirsiniz.
- Kullanıcı olarak oturum açın:
Kullanıcı adını ve parolayı doğrudan komutun
az loginiçinde belirtebilir veya tarayıcı kullanarak kimlik doğrulaması yapabilirsiniz. Hesabınızda çok faktörlü kimlik doğrulaması etkinleştirildiyse tarayıcı kullanarak kimlik doğrulaması yapmanız gerekir:az login -u "user@contoso.onmicrosoft.com" -p 'Password123!' --tenant contoso.onmicrosoft.comUyarı
Kullanıcı hesabınızda çok faktörlü kimlik doğrulaması etkinleştirildiyse parametresini
az loginsağlamadan-ukomutunu kullanın. Bu komutu çalıştırmak, kimlik doğrulaması için kullanmanız gereken bir URL ve kod sağlar.Hizmet sorumlusu olarak oturum açın:
Oturum açmadan önce Azure portalı veya CLI aracılığıyla bir hizmet sorumlusu oluşturun ve bu sorumluya bir rol atayın. Şimdi aşağıdaki komutu kullanarak oturum açın:
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>
Ortamınızın doğru ayarlandığını ve ortamınızın etkin bulut olduğunu doğrulayın:
az cloud list --output tableOrtamınızın listelendiğini ve IsActive'in olduğunu
truegörmeniz gerekir. Örneğin:IsActive Name Profile ---------- ----------------- ----------------- False AzureCloud 2020-09-01-hybrid False AzureChinaCloud latest False AzureUSGovernment latest False AzureGermanCloud latest True AzureStackUser 2020-09-01-hybrid
Bağlantıyı test etme
Her şey ayarlandıysa, Azure Stack Hub'da kaynak oluşturmak için CLI kullanın. Örneğin, bir uygulama için kaynak grubu oluşturabilir ve vm ekleyebilirsiniz. "MyResourceGroup" adlı bir kaynak grubu oluşturmak için aşağıdaki komutu kullanın:
az group create -n MyResourceGroup -l local
Kaynak grubu başarıyla oluşturulursa, önceki komut yeni oluşturulan kaynağın aşağıdaki özelliklerini verir:
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/RGCL11",
"location": "local",
"name": "RGCLI1",
" properties ": {
"provisioningState": "Succeeded"
},
"tags ": null
}
Genel bilinen sorunlar
Çoğu sorunun genel düzeltmesi, sorunla ilişkili komut için rest API çağrısı yapmak üzere geçerli Azure Stack bağlamını kullanan komutu kullanmaktır az rest . Aşağıdaki sorunlar listesindeki geçici çözümler, bu sorunlar Azure Stack Hub kaynak sağlayıcılarından veya diğer Azure Stack Hub hizmetlerinden değil Azure CLI'dan kaynaklandığı sürece genellikle diğer Azure CLI sorunlarına uyarlanabilir.
Microsoft Graph sorunları
Bunlar, Azure Stack Hub için Azure CLI 2.40.0 veya üzeri için bilinen Microsoft Graph sorunlarıdır. Bu, Microsoft Graph'ı desteklemediğinden öncelikle AD FS ortamlarını etkiler.
az keyvault createMicrosoft Graph ile etkileşim kurar. Aşağıda AD FS için örnek bir geçici çözüm verilmiştir. Geçici çözüm öncelikle Microsoft Graph yerine Azure AD Graph'ı kullanarakobjectIdgibi kullanıcı bilgilerini alır.# 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 MySecretKey Vault REST API'si hakkında daha fazla bilgi için bkz. Key Vault REST API başvurusu.
Diğer sorunlar
Azure CLI'nın belirli sürümleri veya aralıkları ile sınırlı olmayan sorunlar aşağıdadır.
az role assignment createeski bir API sorunu nedeniyle şu anda Azure Stack Hub için Azure CLI tarafından desteklenmiyor. Hem Microsoft Entra Id hem de AD FS için aşağıdaki geçici çözüm gereklidir.# 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"Rol ataması REST API'si hakkında daha fazla bilgi için rol atamaları makalesine bakın.