Overzicht
Ansible werkt op een agentloze manier, wat betekent dat er geen aparte software op de beheerde servers hoeft te worden geïnstalleerd. Het voert commando's uit via SSH-verbindingen en gebruikt Python-gebaseerde modules om verschillende taken uit te voeren. Het definieert beheerde hosts via een inventarisbestand en automatiseert taken met behulp van ad-hoc commando's of playbooks.
Belangrijkste kenmerken
- Agentloze methode (geen agenten nodig op beheerde servers)
- SSH-gebaseerde communicatie (gebruik van bestaande infrastructuur)
- Gebruik van YAML playbooks (beknopte en leesbare automatiseringsscripts)
- Diverse IT-automatisering zoals configuratiebeheer, applicatiedistributie, orkestratie
Belangrijkste opties
Ansible-commando's worden gebruikt om specifieke modules uit te voeren of ad-hoc commando's uit te voeren op hostgroepen die zijn gedefinieerd in een inventarisbestand.
Standaard uitvoeringsopties
Informatie en debugging
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`ansible` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
U kunt Ansible-commando's gebruiken om diverse taken op externe servers uit te voeren.
Verbindingscontrole van alle hosts (ping)
ansible all -m ping
Test de verbindingsmogelijkheid met alle hosts die in de inventaris zijn gedefinieerd.
Commando uitvoeren op webservergroep
ansible webservers -a "uptime"
Voert het 'uptime'-commando uit op hosts die behoren tot de 'webservers'-groep in de inventaris.
Pakket installeren op specifieke host (met sudo)
ansible node1 -b -m apt -a "name=nginx state=present"
Installeert het 'nginx'-pakket op de host 'node1'. Gebruikt de -b optie voor sudo-rechten.
Gebruik van aangepast inventarisbestand
ansible all -i my_inventory.ini -a "df -h"
Voert het 'df -h'-commando uit op alle hosts met behulp van het 'my_inventory.ini'-bestand in plaats van het standaard inventarisbestand.
Bestand kopiëren met gespecificeerde externe gebruiker
ansible webservers -u deploy_user -m copy -a "src=./index.html dest=/var/www/html/"
Kopieert het lokale 'index.html'-bestand naar de '/var/www/html/'-directory op de externe server, verbonden als de externe gebruiker 'deploy_user'.
Installatie
Ansible is niet standaard inbegrepen in de meeste Linux-distributies, dus het moet worden geïnstalleerd via een pakketbeheerder of Python pip. Installatie via Python pip wordt het meest aanbevolen.
Installatie met Python pip (aanbevolen)
Als Python is geïnstalleerd, kunt u Ansible installeren met pip.
- Installatie commando: pip install ansible
- Upgrade commando: pip install --upgrade ansible
Ubuntu/Debian
Installeert met de APT-pakketbeheerder.
- Installatie commando: sudo apt update && sudo apt install ansible
CentOS/RHEL
Installeert met de YUM/DNF-pakketbeheerder. Mogelijk is de EPEL-repository vereist.
- EPEL repository installeren: sudo yum install epel-release
- Installatie commando: sudo yum install ansible
Tips & Aandachtspunten
Tips en aandachtspunten voor het effectief gebruiken van Ansible.
Ansible gebruikstips
- **Inventarisbestandbeheer**: Het is belangrijk om beheerde hosts systematisch te groeperen en te definiëren. U kunt `ini` of `yaml` formaten gebruiken.
- **Gebruik van playbooks aanbevolen**: Voor alles behalve eenvoudige ad-hoc commando's is het raadzaam om YAML-gebaseerde playbooks (`ansible-playbook`) te gebruiken voor herbruikbaarheid, leesbaarheid en versiebeheer.
- **Begrip van Idempotentie**: Ansible is ontworpen om ervoor te zorgen dat de systeemstatus hetzelfde blijft, zelfs als taken meerdere keren worden uitgevoerd. Dit wordt idempotentie genoemd, en dit concept moet worden toegepast bij het schrijven van automatiseringsscripts.
- **SSH-sleutelgebaseerde authenticatie**: Het is aan te raden om SSH-sleutels te gebruiken in plaats van wachtwoorden om de beveiliging te verbeteren en het automatiseringsproces te stroomlijnen.
- **Gebruik van Vault**: Gevoelige informatie (wachtwoorden, API-sleutels, etc.) moet worden beheerd door deze te versleutelen met Ansible Vault.