Share via


Quickstart: Een Azure-service-principal maken voor Ansible

In deze quickstart maakt u een Azure-service-principal met AzureCLI of Azure PowerShell en verifieert u zich bij Azure vanuit Ansible.

In dit artikel leert u het volgende:

  • Een Azure-service-principal maken met behulp van de Azure CLI
  • Een Azure-service-principal maken met behulp van Azure PowerShell
  • Een rol toewijzen aan de Azure-service-principal
  • Belangrijke informatie ophalen uit de service-principal
  • Omgevingsvariabelen instellen zodat Ansible de waarden van de service-principal kan ophalen
  • De service-principal testen

Vereisten

  • Azure-abonnement: als u nog geen abonnement op Azure hebt, maakt u een gratis Azure-account aan voordat u begint.

Een Azure-service-principal maken

Een Azure-service-principal biedt u een toegewezen account voor het beheren van Azure-resources met Ansible.

Voer de volgende code uit om een Azure-service-principal te maken:

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

Notitie

Sla het wachtwoord op uit de uitvoer op een veilige locatie.

Een rol toewijzen aan de Azure-service-principal

Standaard hebben service-principals niet de toegang die nodig is voor het beheren van resources in Azure.

Voer de volgende opdracht uit om de rol Inzender toe te wijzen aan de service-principal:

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

Vervang <appID> door de waarde die is opgegeven in de uitvoer van az ad sp create-for-rba de opdracht.

Notitie

Als u de beveiliging wilt verbeteren, wijzigt u het bereik van de roltoewijzing in een resourcegroep in plaats van een abonnement.

Informatie over de Azure-service-principal ophalen

Voor verificatie bij Azure met een service-principal hebt u de volgende informatie nodig:

  • SubscriptionID
  • Service Principal ApplicationId
  • Wachtwoord voor service-principal
  • TenantID

Voer de volgende opdrachten uit om informatie over de service-principal op te halen:

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

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

Verifiëren bij Azure met de service-principal

Voer de volgende opdrachten uit om de vereiste omgevingsvariabelen op de Ansible-server te vullen:

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

Vervang , <ApplicationId>, <Password>en <TenantID> door <SubscriptionID>de waarden van uw service-principal-account.

Service-principalmachtigingen testen

Voer de volgende opdracht uit om een nieuwe Azure-resourcegroep te maken:

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

Vervang <resource_group_name> en <resource_group_location> door de nieuwe resourcegroepwaarden.

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

Voer de volgende opdracht uit om de Azure-resourcegroep te verwijderen:

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

Vervang <resource_group_name> door de naam van de resourcegroep.

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

Volgende stappen