Ansible¶
Wat is Ansible¶
Ansible is een open-source automatiseringstool waarmee je IT-taken zoals configuratiebeheer, software-implementatie en applicatie-orkestratie eenvoudig kunt uitvoeren. Het werkt agentloos, wat betekent dat je geen extra software hoeft te installeren op de beheerde systemen. Ansible gebruikt YAML-bestanden (playbooks) om instructies te definiëren en maakt verbinding via SSH om taken uit te voeren. Het is populair vanwege de eenvoudige syntaxis, schaalbaarheid en efficiëntie in het beheren van zowel kleine als grote IT-omgevingen.
Benodigdheden voor het uitvoeren van een Ansible-script (easy)¶
Om een Ansible-script te laten draaien, zijn er een aantal essentiële onderdelen:
Note
De config file van Ansible staat op "/etc/ansible/ansible.cfg". Deze word overschreven als je deze in de root folder van je ansible playbook zet.
Inventory-bestand¶
Het inventory-bestand bevat een lijst van servers waarop Ansible taken moet uitvoeren. Een eenvoudig voorbeeld:
Note
Je kan heel makkelijk servers groeperen door deze op te lijsten zoals hieronder bij [webservers]. Hier heb kan je ook nog [webservers:vars] aan toevoegen en dan gaan alle [webservers] deze variabele gebruiken. Als je dan in je Playbook deze aanspreekt onders "hosts:" zullen enkel deze servers aangesproken worden.
Playbook-bestand¶
Een Ansible playbook is een YAML-bestand dat een serie taken beschrijft die uitgevoerd moeten worden op een of meer remote machines. Het wordt gebruikt om geautomatiseerde configuraties, implementaties of beheertaken uit te voeren op servers of andere systemen. Playbooks in Ansible zijn zeer flexibel en kunnen worden gebruikt om allerlei systemen in te stellen, van het installeren van software tot het configureren van netwerkinstellingen of het beheren van beveiligingsinstellingen.
Note
Een playbook bestaat meestal uit de volgende elementen: - Hosts: Dit is een reeks taken die uitgevoerd moeten worden op een specifieke groep hosts. - Tasks: Dit zijn de specifieke acties die moeten worden uitgevoerd (zoals het installeren van software, het kopiëren van bestanden, enz.). - Modules: Ansible maakt gebruik van modules die de uitvoering van een taak mogelijk maken, zoals de apt-module voor het installeren van pakketten op Debian-gebaseerde systemen. - Variables: Dit maakt het mogelijk om dynamische configuraties te gebruiken.
Als het inventory- en playbook-bestand klaar zijn, kun je het script uitvoeren met:
Benodigdheden voor het uitvoeren van een Ansible-script (advanced)¶
Als je het bovenste onder de knie hebt kunnen we je ansible script wat geavanceerd maken.
Uitleg van de bestanden en mappen:¶
- files/: Bevat bestanden die nodig zijn voor de configuratie of implementatie.
- roles/: Hierin kunnen Ansible-rollen worden opgeslagen, die taken groeperen per functie.
- ansible.cfg: De configuratie van Ansible, waarin instellingen zoals de locatie van het inventory-bestand en logbestanden staan.
- inventory.md: Bevat een lijst van de servers en hun groepen die door Ansible worden beheerd.
- first_playbook.yml: Een test-playbook om de basisfunctionaliteit van Ansible te controleren.
Configuratie bestanden
Warning
Dit is een voorbeeld!!
|
Ansible¶
Installeer Ansible¶
Voor je begint zijn er een aandere stappen die je moet doorlopen. Waaronder het installeren van Ansible
Voor de het target toestel installeer je python¶
Als python aan de andere kant niet is geinstalleerd zal ansible ook niet werken.
Test de connectie¶
Voor we verder gaan willen we weten of de connectie wel werkt. Dat doe je door volgende commando uit te voeren.
[!NOTE]
sshpass is nodig voor directe ansible commando
installeer ssh keys¶
Je kan ansible laten werken zonder ssh keys. Met ssh keys is dit gemakkelijker en gebruiks vriendelijker.
Installeer een ssh key voor ansible¶
Dit doen we om een ssh key voor ansible te reserveren.
|
[!NOTE]
Als je in verdere stappen problemen krijgt met het remote connectie maken voer dan volgende commandie uit
Github ssh key¶
Als je met github werkt raad ik aan een key aan te maken en de public in github te steken Deze key word ook meegegeven aan alle servers waar je ansible op uitvoert.
|
Github test¶
Test even of de connectie met Github werkt voor je verdergaat. Als dit failt zullen alle toestellen waar je deze key opzet ook failen.
|
Test het script¶
Eerst en vooral zul je dit commano moeten losslaten omdat je nog geen connectie hebt met de nodes. Dit Commandoe vraagt achter het gebruikers wachtwoord en het root wachwoord
[!warning]
Voor je verdergaat ga je naar de inventory.md file en pas je jouw waardes aan. De test_playbook spreekt de [docker] aan.Als Voorig scipt succesvol is uitgevoerd zou je vanaf nu je script kunnen starten met