Zoeken op website

Hoe u rollen op Ansible Galaxy kunt maken, downloaden en gebruiken - Deel 9


In Deel 9 van de Ansible-serie leert u hoe u rollen op Ansible Galaxy kunt maken, downloaden en gebruiken. Ansible is een eenvoudige maar effectieve tool voor configuratiebeheer en automatische implementatie die complexe taken naadloos op een efficiënte manier automatiseert. U kunt honderden of zelfs duizenden servers beheren vanaf één enkel besturingsknooppunt met behulp van één enkel playbook-bestand.

Het schrijven van draaiboeken voor het beheren van dezelfde service in verschillende omgevingen kan echter behoorlijk omslachtig zijn en dit leidt meestal tot coderedundantie. Bovendien kan een grotere complexiteit de moeilijkheid bij het beheren van alle apparaten vergroten.

Er komen rollen. In Ansible worden rollen gebruikt om playbooks op te splitsen in herbruikbare bestanden die kunnen worden gebruikt in verschillende andere instanties waar de noodzaak zich voordoet om een soortgelijke taak uit te voeren. Dit elimineerde de noodzaak om draaiboeken steeds opnieuw te schrijven en bespaart veel tijd en energie.

Rollen zijn eenvoudigweg functionaliteiten van draaiboeken. Een rol wordt geleverd met vrijwel wat een draaiboek zou zijn: taken, bestanden, modules, variabelen en sjablonen. Houd er ook rekening mee dat elke rol beperkt is tot een bepaalde taak of de gewenste output.

Een Ansible-rol creëren

Om een rol in Ansible te creëren, gebruikt u eenvoudigweg de syntaxis.

ansible-galaxy init role_name 

Er worden meerdere mappen en bestanden aangemaakt in uw huidige werkmap. In dit geval heb ik besloten een rol aan te maken in de map /etc/ansible/roles.

Laten we een rol maken met de naam apache.

ansible-galaxy init apache

Gebruik het boomcommando om een blik te werpen op de directorystructuur van de rol.

tree apache

Zoals u kunt zien, zijn er verschillende mappen aangemaakt, maar deze zullen niet allemaal in het draaiboek worden gebruikt.

Om uw nieuw gemaakte rol in een draaiboek te gebruiken, definieert u nu een taak in het bestand main.yml in de takenmap van uw nieuwe rol.

/apache/tasks/main.yml

---

- hosts: database_servers

  tasks:

    - name: Install Apache2 on Ubuntu webserver
      apt:
         name: apache2
         state: installed

Maak daarna een playbook-bestand en roep de rol aan zoals weergegeven.

--- 
- hosts: webservers
  roles:
   - apache

Een rol installeren vanuit Ansible Galaxy

Rollen spelen een cruciale rol bij het delen van code met andere gebruikers in de Ansible-gemeenschap die het Ansible Galaxy-platform gebruiken. In Ansible Galaxy krijg je duizenden rollen die verschillende taken uitvoeren, zoals de installatie van webservers en databases, monitoringtools, enz.

Ansible Galaxy is een database of een opslagplaats van Ansible-rollen die u kunt gebruiken in uw draaiboeken en waarmee u uw taken kunt stroomlijnen.

Om een rol in Ansible Galaxy te zoeken, voert u eenvoudigweg de opdracht uit.

ansible-galaxy search <role>

Als u bijvoorbeeld wilt zoeken naar een rol met de naam mysql run.

ansible-galaxy search mysql

Zoals u kunt zien, zijn er honderden rollen die overeenkomen met het zoekwoord mysql. Niet alle rollen zullen echter uitvoeren wat u van plan bent, dus het wordt aanbevolen dat u de instructies zorgvuldig doorleest.

Om meer informatie over een rol te verzamelen, voert u eenvoudigweg de Ansible-opdracht uit:

ansible-galaxy info 5KYDEV0P5.skydevops-mysql

In ons voorbeeld gaan we de rol 5KYDEV0P5.skydevops-mysql installeren.

ansible-galaxy install 5KYDEV0P5.skydevops-mysql

De rol wordt gedownload en uitgepakt naar de standaardrollenmap op /etc/ansible/roles.

De rol kan daarna in een draaiboek worden aangeroepen, bijvoorbeeld:

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql

Nu kunt u het Ansible-playbook veilig uitvoeren zoals weergegeven.

ansible-playbook install_mysql.yml

Bovendien kunt u Ansible Galaxy via uw webbrowser bezoeken en handmatig zoeken naar rollen voor het uitvoeren van verschillende taken, zoals beschreven op het dashboard.

Als u bijvoorbeeld naar een monitoringrol zoals elasticsearch wilt zoeken, klikt u op de optie ‘Monitoring’ en zoekt u naar de rol zoals weergegeven.

Ansible Galaxy maakt het gemakkelijker voor gebruikers om de beste rollen te installeren door de populairste en meest gedownloade rollen op te sommen. Voor meer informatie over een specifieke rol klikt u er eenvoudig op.

In een draaiboek kun je bijvoorbeeld ook meer dan één rol opgeven.

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql
    • Aaronpederson.mariadb

Om de geïnstalleerde rollen weer te geven, voert u eenvoudigweg uit.

ansible-galaxy list

Conclusie

Rollen maken het vrij eenvoudig om Ansible-playbooks opnieuw te gebruiken en te delen. Op deze manier besparen ze een gebruiker veel tijd bij het schrijven van veel redundante code en besteden ze te veel tijd die zou zijn besteed aan andere systeembeheertaken. En dat is het voor deze gids.