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.
- Azure-service-principal: maak een service-principal, noteer de volgende waarden: appId, displayName, wachtwoord en tenant.
Maak een virtuele machine
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.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.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.
Nadat u verbinding hebt gemaakt met de virtuele hostmachine, maakt en opent u een bestand met de naam
credentials
:mkdir ~/.azure vi ~/.azure/credentials
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>
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
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.Voer het playbook uit met ansible-playbook.
ansible-playbook create_rg.yml
Lees meer over de azure.azcollection.
Resources opschonen
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
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 endebug
sectie van het playbook worden de resultaten weergegeven wanneer de opdracht is voltooid.
- Vanwege de