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.

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