Поделиться через


Краткое руководство. Создание субъекта-службы Azure для Ansible

В этом кратком руководстве показано, как создать субъект-службу Azure с помощью Azure CLI или Azure PowerShell и настроите проверку подлинности в Azure из Ansible.

Вы узнаете, как выполнять следующие задачи:

  • создание субъекта-службы Azure с помощью Azure CLI;
  • Создание субъекта-службы Azure с помощью Azure PowerShell
  • Назначение роли субъекту-службе Azure
  • Получите ключевую информацию от субъекта-службы
  • Установите переменные среды, чтобы Ansible мог получать значения участников службы
  • Проверка субъекта-службы

Необходимые компоненты

Создание субъекта-службы Azure

Субъект-служба Azure предоставляет выделенную учетную запись для управления ресурсами Azure с помощью Ansible.

Чтобы создать субъект-службу Azure, выполните следующий код:

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

Примечание.

Сохраните в безопасном месте пароль, указанный в выходных данных.

Назначение роли субъекту-службе Azure

По умолчанию субъекты-службы не имеют доступа, который требуется для управления ресурсами в Azure.

Выполните следующую команду, чтобы назначить субъекту-службе роль Участник:

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

Замените <appID> значением, которое вы получили в выходных данных команды az ad sp create-for-rbac.

Примечание.

Чтобы повысить безопасность, измените область назначения роли: укажите группу ресурсов вместо подписки.

Получение сведений о субъекте-службе Azure

Чтобы выполнить проверку подлинности в Azure с помощью субъекта-службы, вам потребуется следующая информация:

  • SubscriptionID
  • идентификатор приложения субъекта-службы;
  • пароль субъекта-службы;
  • TenantID

Чтобы получить сведения о субъекте-службе, выполните следующие команды:

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

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

Проверка подлинности в Azure с помощью субъекта-службы

Выполните следующие команды, чтобы заполнить необходимые переменные среды на сервере Ansible:

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

Замените <SubscriptionID>, <ApplicationId>, <Password> и <TenantID> правильными значениями для учетной записи субъекта-службы.

Проверка разрешений субъекта-службы

Выполните следующую команду, чтобы создать группу ресурсов Azure:

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

Замените <resource_group_name> и <resource_group_location> правильными значениями для новой группы ресурсов.

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

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

Замените <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
    }
}

Следующие шаги