Sdílet prostřednictvím


Rychlý start: Vytvoření instančního objektu Azure pro Ansible

V tomto rychlém startu vytvoříte instanční objekt Azure pomocí AzureCLI nebo Azure PowerShellu a ověříte ho v Azure z Ansible.

V tomto článku získáte informace o těchto tématech:

  • Vytvoření instančního objektu Azure pomocí Azure CLI
  • Vytvoření instančního objektu Azure pomocí Azure PowerShellu
  • Přiřazení role k instančnímu objektu Azure
  • Získání klíčových informací z instančního objektu
  • Nastavení proměnných prostředí tak, aby Ansible mohl načíst hodnoty instančního objektu
  • Otestování instančního objektu

Požadavky

  • Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.

Vytvoření instančního objektu Azure

Instanční objekt Azure poskytuje vyhrazený účet pro správu prostředků Azure pomocí Ansible.

Spuštěním následujícího kódu vytvořte instanční objekt Azure:

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

Poznámka:

Uložte heslo z výstupu do zabezpečeného umístění.

Přiřazení role k instančnímu objektu Azure

Ve výchozím nastavení nemají instanční objekty přístup potřebný ke správě prostředků v Azure.

Spuštěním následujícího příkazu přiřaďte roli Přispěvatel instančnímu objektu:

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

Nahraďte <appID> hodnotou zadanou z výstupu az ad sp create-for-rba příkazu.

Poznámka:

Pokud chcete zlepšit zabezpečení, změňte obor přiřazení role ke skupině prostředků místo předplatného.

Získání informací o instančním objektu Azure

Pokud se chcete ověřit v Azure pomocí instančního objektu, potřebujete následující informace:

  • SubscriptionID
  • ID aplikace instančního objektu
  • Heslo instančního objektu
  • TenantID

Spuštěním následujících příkazů získejte informace o instančním objektu:

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

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

Ověřování v Azure pomocí instančního objektu

Spuštěním následujících příkazů naplňte požadované proměnné prostředí na serveru Ansible:

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

Nahraďte <SubscriptionID>, <Password><ApplicationId>a <TenantID> hodnotami vašeho účtu instančního objektu.

Testování oprávnění instančního objektu

Spuštěním následujícího příkazu vytvořte novou skupinu prostředků Azure:

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

Nahraďte <resource_group_name> nové hodnoty skupiny prostředků a <resource_group_location> nahraďte je.

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

Spuštěním následujícího příkazu odstraňte skupinu prostředků Azure:

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

Nahraďte <resource_group_name> názvem vaší skupiny prostředků.

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

Další kroky