Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda dapat menginstal Azure CLI untuk mengelola Azure Stack Hub dengan komputer Windows atau Linux. Artikel ini memandu Anda tentang langkah-langkah untuk menginstal dan menyiapkan Azure CLI.
Menginstal Azure CLI
Masuk ke stasiun kerja pengembangan Anda dan instal CLI. Azure Stack Hub memerlukan Azure CLI versi 2.0 atau yang lebih baru.
Penting
Karena CVE yang memengaruhi versi Azure CLI sebelum 2.40.0, tidak disarankan lagi agar Anda menggunakan Azure CLI 2.29.2 untuk AD FS di Azure Stack Hub. Anda dapat memperbarui ke Azure CLI 2.40.0 atau yang lebih tinggi. Namun, pelanggan AD FS mungkin mengalami masalah dengan perintah Azure CLI yang berinteraksi dengan titik akhir Microsoft Graph. Ini karena Microsoft Graph tidak didukung untuk AD FS. Untuk solusi untuk masalah Microsoft Graph, lihat bagian Masalah umum yang diketahui .
Anda dapat menginstal CLI dengan menggunakan langkah-langkah yang dijelaskan dalam artikel Menginstal Azure CLI .
Untuk memverifikasi apakah penginstalan berhasil, buka terminal atau jendela prompt perintah dan jalankan perintah berikut:
az --versionAnda akan melihat versi Azure CLI dan pustaka dependen lainnya yang diinstal di komputer Anda.
Catat lokasi Python CLI.
Menambahkan sertifikat
Ekspor lalu impor sertifikat Azure Stack Hub untuk sistem terintegrasi yang terputus. Untuk sistem terintegrasi yang terhubung, sertifikat ditandatangani secara publik dan langkah ini tidak diperlukan.
Menyambungkan dengan Azure CLI
- Microsoft Entra ID pada Windows
- AD FS di Windows
- Microsoft Entra ID pada Linux
- Layanan Federasi Direktori Aktif Linux
Bagian ini memandu Anda melalui penyiapan CLI jika Anda menggunakan Microsoft Entra ID sebagai layanan manajemen identitas Anda, dan menggunakan CLI pada mesin Windows.
Menyambungkan ke Azure Stack Hub
Daftarkan lingkungan Azure Stack Hub Anda dengan menjalankan
az cloud registerperintah . Sebelum Anda dapat masuk denganaz login, Azure CLI harus dikonfigurasi untuk menargetkan instans Azure Stack Hub Anda daripada cloud publik Azure default. Pertama, gunakanaz cloud registerperintah untuk mendaftarkan lingkungan Azure Stack Hub Anda dan tentukan titik akhirnya sehingga CLI tahu di mana harus mengirim permintaan. Setelah itu, Anda dapat mengatur lingkungan lalu menggunakanaz loginuntuk mengautentikasi.Daftarkan lingkungan Anda. Gunakan parameter berikut saat menjalankan
az cloud register:Nilai Contoh Deskripsi Nama lingkungan AzureStackUser Gunakan AzureStackUseruntuk lingkungan pengguna. Jika Anda adalah operator, tentukanAzureStackAdmin.Titik akhir Resource Manager https://management.contoso.onmicrosoft.comResourceManagerUrl dalam sistem terintegrasi adalah: https://management.<region>.<fqdn>/. Jika Anda memiliki pertanyaan tentang titik akhir sistem terintegrasi, hubungi operator cloud Anda.Titik akhir penyimpanan local.contoso.onmicrosoft.com Untuk sistem terintegrasi, gunakan titik akhir untuk sistem Anda. Akhiran Keyvault .vault.contoso.onmicrosoft.com Untuk sistem terintegrasi, gunakan titik akhir untuk sistem Anda. ID sumber daya grafik direktori aktif titik akhir https://graph.microsoft.com/ID sumber daya Direktori Aktif. az cloud register ` -n <environmentname> ` --endpoint-resource-manager "https://management.<region>.<fqdn>" ` --suffix-storage-endpoint "<fqdn>" ` --suffix-keyvault-dns ".vault.<fqdn>"Untuk informasi selengkapnya, lihat perintah register dalam dokumentasi referensi Azure CLI.
Atur lingkungan aktif dengan menggunakan perintah berikut.
az cloud set -n <environmentname>Perbarui konfigurasi lingkungan Anda untuk menggunakan profil versi API khusus Azure Stack Hub. Untuk memperbarui konfigurasi, jalankan perintah berikut:
az cloud update --profile 2020-09-01-hybridMasuk ke lingkungan Azure Stack Hub Anda dengan menggunakan
az loginperintah .Anda dapat masuk ke lingkungan Azure Stack Hub menggunakan kredensial pengguna Anda, atau dengan perwakilan layanan (SPN) yang disediakan untuk Anda oleh operator cloud Anda.
- Masuk sebagai pengguna:
Anda dapat menentukan nama pengguna dan kata sandi langsung dalam perintah
az login, atau melalui autentikasi dengan menggunakan browser. Anda harus mengautentikasi menggunakan browser jika akun Anda mengaktifkan autentikasi multifaktor:az login -u "user@contoso.onmicrosoft.com" -p 'Password123!' --tenant contoso.onmicrosoft.comNota
Jika akun pengguna Anda mengaktifkan autentikasi multifaktor, gunakan
az loginperintah tanpa menyediakan-uparameter . Menjalankan perintah ini memberi Anda URL dan kode yang harus Anda gunakan untuk mengautentikasi.Masuk sebagai perwakilan layanan:
Sebelum Anda masuk, buat perwakilan layanan melalui portal Microsoft Azure atau CLI dan tetapkan peran. Sekarang, masuk dengan menggunakan perintah berikut:
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>
Verifikasi bahwa lingkungan Anda diatur dengan benar dan bahwa lingkungan Anda adalah cloud aktif:
az cloud list --output tableAnda akan melihat bahwa lingkungan Anda tercantum dan IsActive adalah
true. Contohnya:IsActive Name Profile ---------- ----------------- ----------------- False AzureCloud 2020-09-01-hybrid False AzureChinaCloud latest False AzureUSGovernment latest False AzureGermanCloud latest True AzureStackUser 2020-09-01-hybrid
Menguji konektivitas
Dengan semua yang disiapkan, gunakan CLI untuk membuat sumber daya dalam Azure Stack Hub. Misalnya, Anda dapat membuat grup sumber daya untuk aplikasi dan menambahkan VM. Gunakan perintah berikut untuk membuat grup sumber daya bernama "MyResourceGroup":
az group create -n MyResourceGroup -l local
Jika grup sumber daya berhasil dibuat, perintah sebelumnya menghasilkan properti berikut dari sumber daya yang baru dibuat:
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/RGCL11",
"location": "local",
"name": "RGCLI1",
" properties ": {
"provisioningState": "Succeeded"
},
"tags ": null
}
Masalah umum yang diketahui
Perbaikan umum untuk sebagian besar masalah adalah menggunakan az rest perintah yang menggunakan konteks Azure Stack saat ini, untuk melakukan panggilan REST API untuk perintah terkait dengan masalah tersebut. Solusi dalam daftar masalah berikut umumnya dapat diadaptasi untuk masalah Azure CLI lainnya selama masalah ini disebabkan oleh Azure CLI dan bukan penyedia sumber daya Azure Stack Hub atau layanan Azure Stack Hub lainnya.
Masalah Microsoft Graph
Ini adalah masalah Microsoft Graph yang diketahui untuk Azure CLI 2.40.0, atau yang lebih besar, untuk Azure Stack Hub. Ini terutama memengaruhi lingkungan AD FS, karena tidak mendukung Microsoft Graph.
az keyvault createberinteraksi dengan Microsoft Graph. Berikut ini adalah contoh solusi alternatif untuk Active Directory Federation Services (AD FS). Terutama, solusinya menggunakan Azure AD Graph untuk mengambil informasi pengguna sepertiobjectIdbukan 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 MySecretUntuk informasi selengkapnya tentang REST API Key Vault, lihat referensi REST API Key Vault.
Masalah Lain
Berikut ini adalah masalah yang tidak terbatas pada versi atau rentang versi Azure CLI tertentu.
az role assignment createsaat ini tidak didukung oleh Azure CLI untuk Azure Stack Hub karena masalah API lama. Langkah berikut diperlukan untuk ID Microsoft Entra atau 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"Untuk informasi selengkapnya tentang REST API penetapan peran, lihat artikel penetapan peran.