Azure Stack Hub üzerine Azure CLI'yı yükleme
Azure Stack Hub'ı Windows veya Linux makinelerle yönetmek için Azure CLI'yi yükleyebilirsiniz. Bu makale, Azure CLI'yi 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 sonraki bir sürüme 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 --version
Azure 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 ekleme
Bağlantısı kesilmiş tümleşik sistemler ve ASDK 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. Yönergeler için bkz. Azure Stack Development Kit'te Azure CLI için sertifikaları ayarlama.
Azure CLI ile bağlanma
Bu bölümde, kimlik yönetimi hizmeti olarak Microsoft Entra kimliği kullanıyorsanız ve CLI'yi bir Windows makinesinde kullanıyorsanız CLI'yi ayarlama adımları açıklanmıştır.
Azure Stack Hub'a bağlanma
ASDK kullanıyorsanız Azure Stack Hub CA kök sertifikasına güvenin. Yönergeler için bkz. Sertifikaya güvenme.
komutunu çalıştırarak
az cloud register
Azure Stack Hub ortamınızı kaydedin.Ortamınızı kaydedin. çalıştırırken
az cloud register
aşağıdaki parametreleri kullanın:Değer Örnek Description Ortam adı AzureStackUser Kullanıcı ortamı için kullanın AzureStackUser
. İşleçseniz belirtinAzureStackAdmin
.uç noktayı Resource Manager https://management.contoso.onmicrosoft.com
ASDK'deki ResourceManagerUrl şöyledir: https://management.local.azurestack.external/
Tümleşik sistemlerdeki ResourceManagerUrl şöyledir:https://management.<region>.<fqdn>/
Tümleşik sistem uç noktası hakkında bir sorunuz varsa bulut operatörünüze başvurun.Depolama uç noktası local.contoso.onmicrosoft.com local.azurestack.external
ASDK içindir. Tümleşik bir sistem için sisteminiz için bir uç nokta kullanın.Keyvault soneki .vault.contoso.onmicrosoft.com .vault.local.azurestack.external
ASDK içindir. Tümleşik bir sistem için sisteminiz için bir uç nokta kullanın.Uç nokta active directory grafı kaynak kimliği https://graph.windows.net/ 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>"
Yazmaç komutu için bir başvuruyu Azure CLI başvuru belgelerinde bulabilirsiniz.
Aşağıdaki komutları kullanarak etkin ortamı ayarlayın.
az cloud set -n <environmentname>
Azure Stack Hub'a özgü API sürüm profilini kullanmak için ortam yapılandırmanızı 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-hybrid
komutunu kullanarak Azure Stack Hub ortamınızda oturum açın
az login
.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 login
içinde belirtebilir veya tarayıcı kullanarak kimlik doğrulaması yapabilirsiniz. Hesabınızda çok faktörlü kimlik doğrulaması etkinleştirildiyse ikincisini yapmalısınız:az login -u "user@contoso.onmicrosoft.com" -p 'Password123!' --tenant contoso.onmicrosoft.com
Not
Kullanıcı hesabınızda çok faktörlü kimlik doğrulaması etkinleştirildiyse parametresini sağlamadan
-u
komutunu kullanınaz login
. 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 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 table
Ortamınızın listelendiğini ve IsActive'in olduğunu
true
görmeniz gerekir. Örnek: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
Sorunların çoğu için genel düzeltme, 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
. Bu sorunlar Azure Stack Hub kaynak sağlayıcıları veya diğer Azure Stack Hub hizmetlerinden değil Azure CLI'dan kaynaklandığı sürece, aşağıdaki sorunlar listesindeki geçici çözümler 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 öncelikle ADFS ortamlarını etkiler çünkü Microsoft Graph'i desteklemez.
az keyvault create
Microsoft Graph ile etkileşim kurar. Aşağıda ADFS için örnek bir geçici çözüm verilmiştir. Öncelikle geçici çözüm, Microsoft Graph yerine gibi kullanıcı bilgileriniobjectId
almak için Azure AD Graph'ı kullanı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 MySecret
Key Vault REST API hakkında daha fazla bilgi için bkz. Key Vault REST API başvurusu.
Diğer sorunlar
Aşağıda, Azure CLI'nın belirli sürümleri veya sürümleriyle sınırlı olmayan sorunlar yer almaktadır.
-
az role assignment create
eski bir API sorunu nedeniyle şu anda Azure Stack Hub için Azure CLI tarafından desteklenmiyor. Hem Microsoft Entra kimliği hem de ADFS için aşağıdaki geçici çözüm gereklidir.
Rol ataması REST API'si hakkında daha fazla bilgi için rol atamaları makalesine bakın.# 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"