Aan de slag: Ansible configureren op een Azure-VM
Let op
In dit artikel wordt verwezen naar CentOS, een Linux-distributie die de status End Of Life (EOL) nadert. Houd rekening met uw gebruik en plan dienovereenkomstig. Zie de Richtlijnen voor het einde van de levensduur van CentOS voor meer informatie.
In dit artikel wordt beschreven hoe u Ansible installeert op een Centos-VM in Azure.
In dit artikel leert u het volgende:
- Een brongroep maken
- Een virtuele CentOS-machine maken
- Ansible installeren op de virtuele machine
- Verbinding maken via SSH naar de virtuele machine
- 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 CentOS85Gen2 \ --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 via SSH naar uw virtuele machine
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 2.9 met de module azure_rm
Voer de volgende opdrachten uit om Ansible 2.9 te configureren op Centos:
#!/bin/bash
# Update all packages that have available updates.
sudo yum update -y
# Install Python 3 and pip.
sudo yum install -y python3-pip
# Upgrade pip3.
sudo pip3 install --upgrade pip
# Install Ansible.
pip3 install "ansible==2.9.17"
# Install Ansible azure_rm module for interacting with Azure.
pip3 install ansible[azure]
Ansible 2.10 met azure.azcollection
Voer de volgende opdrachten uit om Ansible op Centos te configureren:
#!/bin/bash
# Update all packages that have available updates.
sudo yum update -y
# Install Python 3 and pip.
sudo yum install -y python3-pip
# Upgrade pip3.
sudo pip3 install --upgrade pip
# Install Ansible az collection for interacting with Azure.
ansible-galaxy collection install azure.azcollection
# Install Ansible modules for Azure
sudo pip3 install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements-azure.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 2.9 with azure_rm module
ansible localhost -m azure_rm_resourcegroup -a "name=ansible-test location=eastus"
#Ansible 2.10 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 2.9 met azure_rm module
--- - hosts: localhost connection: local tasks: - name: Creating resource group azure_rm_resourcegroup: name: "<resource_group_name" location: "<location>"
Ansible 2.10 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
Volgende stappen
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor