Hızlı Başlangıç: Ansible için Azure hizmet sorumlusu oluşturma

Bu hızlı başlangıçta, AzureCLI veya Azure PowerShell ile bir Azure hizmet sorumlusu oluşturup Ansible'dan Azure'da kimlik doğrulaması yaparsınız.

Bu makalede şunları öğreneceksiniz:

  • Azure CLI kullanarak Azure hizmet sorumlusu oluşturma
  • Azure PowerShell kullanarak Azure hizmet sorumlusu oluşturma
  • Azure hizmet sorumlusuna rol atama
  • Hizmet sorumlusundan anahtar bilgilerini alma
  • Ansible'ın hizmet sorumlusu değerlerini alabilmesi için ortam değişkenlerini ayarlama
  • Hizmet sorumlusunu test edin

Önkoşullar

  • Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Azure hizmet sorumlusu oluşturma

Azure hizmet sorumlusu, Ansible ile Azure kaynaklarını yönetmek için ayrılmış bir hesap sağlar.

Azure hizmet sorumlusu oluşturmak için aşağıdaki kodu çalıştırın:

az ad sp create-for-rbac --name ansible \
            --role Contributor \
            --scopes /subscriptions/<subscription_id>

Dekont

Çıkıştaki parolayı güvenli bir konumda depolayın.

Azure hizmet sorumlusuna rol atama

Varsayılan olarak hizmet sorumluları, Azure'daki kaynakları yönetmek için gerekli erişime sahip değildir.

Katkıda Bulunan rolünü hizmet sorumlusuna atamak için aşağıdaki komutu çalıştırın:

az role assignment create --assignee <appID> \
    --role Contributor \
    --scope /subscriptions/<subscription_id>

değerini komutun çıkışından az ad sp create-for-rba sağlanan değerle değiştirin<appID>.

Dekont

Güvenliği geliştirmek için rol atamasının kapsamını abonelik yerine bir kaynak grubuyla değiştirin.

Azure hizmet sorumlusu bilgilerini alma

Azure'da hizmet sorumlusuyla kimlik doğrulaması yapmak için aşağıdaki bilgilere ihtiyacınız vardır:

  • Abonelik Kimliği
  • Hizmet Sorumlusu ApplicationId
  • Hizmet Sorumlusu parolası
  • TenantID

Hizmet sorumlusu bilgilerini almak için aşağıdaki komutları çalıştırın:

az account show --query '{tenantId:tenantId,subscriptionid:id}';

az ad sp list --display-name ansible --query '{clientId:[0].appId}'

Hizmet sorumlusuyla Azure'da kimlik doğrulaması

Ansible sunucusunda gerekli ortam değişkenlerini doldurmak için aşağıdaki komutları çalıştırın:

export AZURE_SUBSCRIPTION_ID=<SubscriptionID>
export AZURE_CLIENT_ID=<ApplicationId>
export AZURE_SECRET=<Password>
export AZURE_TENANT=<TenantID>

, <ApplicationId>, <Password>ve <TenantID> değerlerini hizmet sorumlusu hesabınızın değerleriyle değiştirin<SubscriptionID>.

Hizmet sorumlusu izinlerini test edin

Yeni bir Azure kaynak grubu oluşturmak için aşağıdaki komutu çalıştırın:

ansible localhost -m azure_rm_resourcegroup -a "name=<resource_group_name> location=<resource_group_location>"

ve <resource_group_location> değerini yeni kaynak grubu değerlerinizle değiştirin<resource_group_name>.

[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
    }
}

Azure kaynak grubunu silmek için aşağıdaki komutu çalıştırın:

ansible localhost -m azure_rm_resourcegroup -a "name=<resource_group_name> state=absent force_delete_nonempty=yes"

değerini kaynak grubunuzun adıyla değiştirin <resource_group_name> .

[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
    }
}

Sonraki adımlar