Mulai cepat: Membuat perwakilan layanan Azure untuk Ansible
Dalam mulai cepat ini, Anda membuat perwakilan layanan Azure dengan AzureCLI atau Azure PowerShell dan mengautentikasi ke Azure dari Ansible.
Dalam artikel ini, Anda akan mempelajari cara:
- Membuat perwakilan layanan Azure menggunakan Azure CLI
- Membuat perwakilan layanan Azure menggunakan Azure PowerShell
- Menetapkan peran ke perwakilan layanan Azure
- Dapatkan informasi penting dari perwakilan layanan
- Atur variabel lingkungan sehingga Ansible dapat mengambil nilai perwakilan layanan
- Menguji perwakilan layanan
Prasyarat
- Langganan Azure: Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum memulai.
Instal Ansible: Lakukan salah satu opsi berikut:
- Menginstal dan mengonfigurasi Ansibel pada mesin virtual Linux
- Konfigurasikan Azure Cloud Shell
Membuat perwakilan layanan Azure
Perwakilan layanan Azure memberi Anda akun khusus untuk mengelola sumber daya Azure dengan Ansible.
Jalankan kode berikut untuk membuat perwakilan layanan Azure:
az ad sp create-for-rbac --name ansible \
--role Contributor \
--scopes /subscriptions/<subscription_id>
Catatan
Simpan kata sandi dari output di lokasi yang aman.
Menetapkan peran ke perwakilan layanan Azure
Secara default perwakilan layanan tidak memiliki akses yang diperlukan untuk mengelola sumber daya di Azure.
Jalankan perintah berikut untuk menetapkan peran Kontributor ke perwakilan layanan:
az role assignment create --assignee <appID> \
--role Contributor \
--scope /subscriptions/<subscription_id>
Ganti <appID>
dengan nilai yang disediakan dari output perintah az ad sp create-for-rba
.
Catatan
Untuk meningkatkan keamanan, ubah cakupan penetapan peran menjadi grup sumber daya dan bukan langganan.
Dapatkan informasi perwakilan layanan Azure
Untuk mengautentikasi ke Azure dengan perwakilan layanan, Anda memerlukan informasi berikut:
- SubscriptionID
- ApplicationId Perwakilan Layanan
- Kata sandi Perwakilan Layanan
- IDPenyewa
Jalankan perintah berikut untuk mendapatkan informasi perwakilan layanan:
az account show --query '{tenantId:tenantId,subscriptionid:id}';
az ad sp list --display-name ansible --query '{clientId:[0].appId}'
Autentikasi ke Azure dengan perwakilan layanan
Jalankan perintah berikut untuk mengisi variabel lingkungan yang diperlukan di server Ansible:
export AZURE_SUBSCRIPTION_ID=<SubscriptionID>
export AZURE_CLIENT_ID=<ApplicationId>
export AZURE_SECRET=<Password>
export AZURE_TENANT=<TenantID>
Ganti <SubscriptionID>
, <ApplicationId>
, <Password>
, dan <TenantID>
dengan nilai akun perwakilan layanan Anda.
Menguji izin perwakilan layanan
Jalankan perintah berikut ini untuk membuat grup sumber daya Azure:
ansible localhost -m azure_rm_resourcegroup -a "name=<resource_group_name> location=<resource_group_location>"
Ganti <resource_group_name>
dan <resource_group_location>
dengan nilai grup sumber daya baru Anda.
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | CHANGED => {
"changed": true,
"contains_resources": false,
"state": {
"id": "/subscriptions/<subscriptionID>/resourceGroups/azcli-test",
"location": "eastus",
"name": "azcli-test",
"provisioning_state": "Succeeded",
"tags": null
}
}
Jalankan perintah berikut untuk menghapus grup sumber daya Azure:
ansible localhost -m azure_rm_resourcegroup -a "name=<resource_group_name> state=absent force_delete_nonempty=yes"
Ganti <resource_group_name>
dengan nama grup sumber daya Anda.
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | CHANGED => {
"changed": true,
"contains_resources": false,
"state": {
"id": "/subscriptions/subscriptionID>/resourceGroups/azcli-test",
"location": "eastus",
"name": "azcli-test",
"provisioning_state": "Succeeded",
"status": "Deleted",
"tags": null
}
}
Langkah berikutnya
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk