Delen via


Aan de slag: Ansible configureren op een Azure-VM

In dit artikel wordt beschreven hoe u Ansible installeert op een Ubuntu-VM in Azure.

In dit artikel leert u het volgende:

  • Een brongroep maken
  • Een virtuele Ubuntu-machine maken
  • Ansible installeren op de virtuele machine
  • Verbinding maken met de virtuele machine via SSH
  • Ansible configureren op de virtuele machine

Vereisten

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

Maak een virtuele machine

  1. Maak een Azure-resourcegroep.

    az group create --name QuickstartAnsible-rg --location eastus
    

    Mogelijk moet u de --location parameter vervangen door de juiste waarde voor uw omgeving.

  2. Maak de virtuele Azure-machine voor Ansible.

    az vm create \
    --resource-group QuickstartAnsible-rg \
    --name QuickstartAnsible-vm \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --admin-password <password>
    

    Vervang het <password> wachtwoord.

  3. Haal het openbare IP-adres van de virtuele Azure-machine op.

    az vm show -d -g QuickstartAnsible-rg -n QuickstartAnsible-vm --query publicIps -o tsv
    

Verbinding maken met uw virtuele machine via SSH

Gebruik de SSH-opdracht om verbinding te maken met het openbare IP-adres van uw virtuele machine.

ssh azureuser@<vm_ip_address>

Vervang de <vm_ip_address> waarde door de juiste waarde die in eerdere opdrachten is geretourneerd.

Ansible installeren op de virtuele machine

Ansible met azure.azcollection

Voer de volgende opdrachten uit om Ansible in Ubuntu te configureren:

#!/bin/bash

sudo apt update

sudo apt install software-properties-common

sudo add-apt-repository --yes --update ppa:ansible/ansible

sudo apt install ansible

# Install Ansible az collection for interacting with Azure. (optional)
ansible-galaxy collection install azure.azcollection --force 

# Install Ansible modules for Azure (optional)
sudo pip3 install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements.txt

Belangrijkste punten:

  • Voor ansible-besturingsknooppunt is Python 2 (versie 2.7) of Python 3 (versie 3.5 en hoger) geïnstalleerd. Ansible 4.0.0 en ansible-core 2.11 heeft een zachte afhankelijkheid van Python 3.8, maar functies met lagere versies. Ansible 5.0.0 en ansible-core 2.12 vereisen echter 3.8 en hoger.

Azure-referenties maken

Als u de Ansible-referenties wilt configureren, hebt u de volgende informatie nodig:

  • Uw Azure-abonnements-id en tenant-id
  • De toepassings-id en het geheim van de service-principal

Configureer de Ansible-referenties met behulp van een van de volgende technieken:

Optie 1: Ansible-referentiesbestand maken

In deze sectie maakt u een lokaal referentiebestand om referenties aan Ansible op te geven. Om veiligheidsredenen mogen referentiebestanden alleen worden gebruikt in ontwikkelomgevingen.

Zie Referenties voor Azure-modules opgeven voor meer informatie over het definiëren van Ansible-referenties.

  1. Nadat u verbinding hebt gemaakt met de virtuele hostmachine, maakt en opent u een bestand met de naam credentials:

    mkdir ~/.azure
    vi ~/.azure/credentials
    
  2. Voeg de volgende regels in het bestand in. Vervang de tijdelijke aanduidingen door de waarden van de service-principal.

    [default]
    subscription_id=<subscription_id>
    client_id=<service_principal_app_id>
    secret=<service_principal_password>
    tenant=<service_principal_tenant_id>
    
  3. Sla het bestand op en sluit het bestand.

Optie 2: Ansible-omgevingsvariabelen definiëren

Exporteer op de virtuele hostmachine de waarden van de service-principal om uw Ansible-referenties te configureren.

export AZURE_SUBSCRIPTION_ID=<subscription_id>
export AZURE_CLIENT_ID=<service_principal_app_id>
export AZURE_SECRET=<service_principal_password>
export AZURE_TENANT=<service_principal_tenant_id>

Ansible-installatie testen

U hebt nu een virtuele machine waarop Ansible is geïnstalleerd en geconfigureerd.

In deze sectie wordt beschreven hoe u een testresourcegroep maakt in uw nieuwe Ansible-configuratie. Als u dit niet hoeft te doen, kunt u deze sectie overslaan.

Optie 1: een ad-hoc ansible-opdracht gebruiken

Voer de volgende ad-hoc Ansible-opdracht uit om een resourcegroep te maken:


#Ansible with azure.azcollection
ansible localhost -m azure.azcollection.azure_rm_resourcegroup -a "name=<resource_group_name> location=<location>"

Vervang <resource_group_name> en <location> door uw eigen waarden.

Optie 2: Een Ansible-playbook schrijven en uitvoeren

  1. Sla de volgende code op als create_rg.yml.

    Ansible met azure.azcollection

    - hosts: localhost
      connection: local
      collections:
        - azure.azcollection
      tasks:
        - name: Creating resource group
          azure_rm_resourcegroup:
            name: "<resource_group_name"
            location: "<location>"
    

    Vervang <resource_group_name> en <location> door uw eigen waarden.

  2. Voer het playbook uit met ansible-playbook.

    ansible-playbook create_rg.yml
    

Lees meer over de azure.azcollection.

Resources opschonen

  1. Sla de volgende code op als delete_rg.yml.

    ---
    - hosts: localhost
      tasks:
        - name: Deleting resource group - "{{ name }}"
          azure_rm_resourcegroup:
            name: "{{ name }}"
            state: absent
          register: rg
        - debug:
            var: rg
    
  2. Voer het playbook uit met behulp van de ansible-playbook-opdracht . Vervang de tijdelijke aanduiding door de naam van de resourcegroep die u wilt verwijderen. Alle resources in de resourcegroep worden verwijderd.

    ansible-playbook delete_rg.yml --extra-vars "name=<resource_group>"
    

    Belangrijkste punten:

    • Vanwege de register variabele en debug sectie van het playbook worden de resultaten weergegeven wanneer de opdracht is voltooid.

Volgende stappen