Ben je het zat om telkens Ansible-playbooks en Ansible-commando’s handmatig uit te voeren op je Ansible-hostcontroller? Waarom gebruik je niet een webinterface en maak je je leven makkelijker met deze Ansible AWX?
AWX is een open-source webtoepassing gesponsord door Red Hat die een gebruikersinterface en API biedt om alle Ansible-taken uit te voeren. En in deze tutorial leer je Ansible AWX te installeren op een Ubuntu-machine en inventarissen te beheren met Ansible AWX.
Verbeter je automatisering vandaag nog met zeer effectieve automatisering met Ansible AWX!
Vereisten
Deze tutorial omvat stapsgewijze instructies. Zorg ervoor dat je het volgende bij de hand hebt als je wilt volgen:
- Een Ansible-controllerhost – Deze tutorial maakt gebruik van Ansible v2.11.7 op een machine met Ubuntu 20.04.4 LTS-versie.
- Docker – Deze tutorial maakt gebruik van Docker v19.03.11 op een machine met Ubuntu 20.04.4 LTS-versie.
- Python v3.6 of nieuwer geïnstalleerd op uw Ansible-controllerhostmachine – Deze handleiding maakt gebruik van Python v3.8.10.
- A GitHub account with one private and one public repository created in GitHub that you will use to store Ansible Playbook.
Installatie van afhankelijkheden en configuratie van Ansible AWX
Ansible AWS was de basis voor het creëren van Ansible Tower. Ansible AWX maakt het voor IT-teams gemakkelijker om Ansible te gebruiken voor testen; in een lab, ontwikkeling of andere POC-omgeving.
Aangezien Ansible AWS niet standaard is geïnstalleerd op uw Linux-systeem, moet u eerst Ansible AWS installeren, zodat u het kunt uitvoeren als een multi-container met behulp van de Ansible Playbook.
1. Voer elke hieronder vermelde opdracht uit om uw systeempakketten bij te werken en de docker-compose-plugin te installeren.

2. Voer vervolgens de volgende opdracht uit om de geïnstalleerde versie van Docker Compose op uw machine te controleren.
De output hieronder toont aan dat de nieuwste versie van Docker Compose, v2.5.0, is geïnstalleerd en bevestigt dat Docker Compose correct is geïnstalleerd.

3. Voer elke hieronder vermelde opdracht uit om pakketten te installeren als vereisten om met Ansible AWX te werken.



4. Voer nu de volgende commando’s uit om het AWX-pakketarchief van het openbare Git-opslagplaats te downloaden (wget) en vervolgens het pakket uit te pakken.

5. Voer de onderstaande commando’s uit om te wijzigen (cd) naar de AWX-installatiemap (awx-17.1.0/installer/) en een willekeurig wachtwoord (pwgen) te genereren.
Uw AWX-installatiemap (awx-17.1.0/installer/) kan verschillen, afhankelijk van de geïnstalleerde versie van Ansible AWX op uw machine.
Noteer het gegenereerde wachtwoord omdat u het als geheim sleutel zult gebruiken in de AWX-console.

6. Als laatste, open in uw teksteditor het inventory bestand binnen de AWX-installatiemap (awx-17.1.0/installer/). Het inventory bestand bevat de configuraties van AWX, die zullen worden gebruikt bij het inloggen op de AWX UI.
In het inventory-bestand, wijzig de waarde van admin_password naar password en secret_key met het willekeurige wachtwoord dat u in stap vijf heeft gegenereerd.

Installeren en Starten van Ansible AWX met Ansible Playbook
Je hebt Ansible AWX goed geconfigureerd, en nu is het tijd om het te installeren met behulp van een Ansible playbook (install.yml). Het install.yml Ansible playbook wordt geleverd met het Ansible AWX-pakket dat je hebt uitgepakt. Dit playbook bevat taken om commando’s uit te voeren om een Docker-image te bouwen en meerdere containers uit te voeren.
1. Roep het ansible-playbook commando hieronder aan om het install.yml Ansible Playbook uit te voeren.
Hieronder kun je zien dat sommige taken de status hebben gewijzigd, wat aangeeft dat de AWX-host niet in de juiste staat was en is aangepast om het commando uit te voeren.
Daarentegen tonen andere taken een ok-status, wat aangeeft dat ze geen wijzigingen vereisen.

2. Voer vervolgens het docker-commando hieronder uit om alle beschikbare Docker-containers weer te geven.
De uitvoer hieronder toont de actieve containers (awx_tasks, awx_redis, awx_web en awx_postgres), wat bevestigt dat AWX correct is geïnstalleerd.

3. Open tot slot je favoriete browser en ga naar Ansible AWX (https://AWX-HOST-IP:80). Zorg ervoor dat je AWX-HOST-IP vervangt door het IP-adres van je Ansible-host. Als alles goed gaat, zie je de inlogpagina van Ansible AWX in je browser, zoals hieronder weergegeven.
Vul je gebruikersnaam (admin) en wachtwoord (password) in, en klik op Inloggen om toegang te krijgen tot het Ansible AWX-dashboard. Deze referenties zijn degene die je hebt geconfigureerd in de laatste stap van de sectie “Afhandeling van Afhankelijkheden en Configuratie van Ansible AWX”.
AWX installeert automatisch een zelfondertekend certificaat voor HTTPS-communicatie, dat mogelijk moet worden geaccepteerd in uw browser.

Na het inloggen, wordt uw browser doorgestuurd naar het AWX-dashboard, zoals hieronder weergegeven.

Het maken en beheren van inventarissen
Nu u toegang heeft tot het Ansible AWX-dashboard, kunt u aan de slag met taakautomatisering. In deze handleiding beheert u meerdere Ansible-componenten binnen het Ansible AWX-dashboard. Maar eerst moet u inventarissen maken en beheren.
1. Op het AWX-dashboard klikt u op Inventories om de lijst met inventarissen weer te geven die zijn opgeslagen in Ansible AWX. Standaard is er een demoinventaris aanwezig, zoals hieronder weergegeven.
Negeer de demoinventaris en klik op de knop Toevoegen om een nieuwe inventaris te maken.

2. Specificeer vervolgens de onderstaande parameters op de pagina Nieuwe inventaris maken om uw eerste inventaris in te stellen in het Ansible AWX-dashboard:
- Naam – ATA Learning (U kunt de naam naar wens opgeven).
- Omschrijving – Beschrijf de inventaris, dit is optioneel maar helpt bij het identificeren van inventarissen tussen vele anderen.
- Organisatie – Kies de standaardoptie. AWX maakt standaard een organisatie aan, maar u kunt ook uw eigen organisatie maken.
Zodra u al deze gegevens hebt gespecificeerd, klikt u op de opslaan knop zoals hieronder weergegeven.

3. Klik tot slot op het Inventaris tabblad (linker paneel) om te controleren of de nieuw aangemaakte inventaris (ATA Learning) bestaat, zoals hieronder weergegeven.

Het maken en uitvoeren van Ansible taken
Je hebt succesvol je inventaris geconfigureerd, maar het is momenteel nutteloos tenzij je het oproept met een taak. Een taak is een instantie van AWX die een Ansible playbook lanceert tegen de inventaris van een host. En natuurlijk, voordat je een taak kunt oproepen, moet je er eerst een maken:
Om een Ansible taak te maken en uit te voeren:
1. Maak een YML-bestand binnen de GitHub-opslagplaats en kopieer/plak het onderstaande playbook. Je kunt het YML-bestand een naam geven zoals je wilt, maar deze tutorial gebruikt het playbook genaamd ata.yml.

2. Ga naar je Ansible AWX-dashboard en klik op Projecten in het linker paneel om toegang te krijgen tot de lijsten met beschikbare projecten. Je hebt een project nodig voordat je een taak kunt maken.
Negeer het Demo Project en klik op de Toevoegen knop om een nieuw project te maken.

3. Geef de details van het nieuwe project op met het volgende, en klik op Opslaan om het nieuwe project op te slaan:
- Naam – De projectnaam kan alles zijn wat je wilt, maar in deze handleiding wordt de projectnaam ingesteld op myproject.
- Beschrijving – Net zoals bij je inventaris is het optioneel om een beschrijving toe te voegen, maar het helpt wel om projecten van elkaar te onderscheiden.
- Organisatie – Net als bij je inventaris, kies gewoon Standaard voor de organisatie.
- Type broncontrole-inloggegevens – Kies Git als je SCM.
- URL broncontrole – Specificeer de GitHub URL van je broncode.

4. Nadat je een project hebt aangemaakt, klik je op Templates in de linkerkolom om toegang te krijgen tot alle beschikbare sjablonen, zoals hieronder weergegeven.
Op de Templates-pagina klik je op de knop Toevoegen in het vervolgkeuzemenu en kies je de optie Sjabloon voor taak toevoegen om een sjabloon te maken.

5. Specificeer nu de onderstaande gegevens en klik onderaan op Opslaan om het nieuwe taaksjabloon op te slaan:
- Naam – Stel de naam van het taaksjabloon in zoals je wilt, maar in deze handleiding wordt de naam van het taaksjabloon ingesteld op myjob.
- Type taak – Stel de actie in die de taak zal uitvoeren (Uitvoeren).
- Project – Kies het project dat je hebt aangemaakt in stap drie (myproject).
- Inventaris – Kies de inventaris die je hebt aangemaakt in stap twee van de sectie “Inventarissen maken en beheren” (ATA Learning).
- Playbook – Kies het playbook dat je hebt aangemaakt in stap één van de sectie “Ansible-jobs maken en uitvoeren” (ata.yml).

6. Tenslotte, op de pagina Sjablonen, start je de nieuw aangemaakte taak met het volgende:
- Klik op de taak (myjob) om toegang te krijgen tot de informatiepagina van de taak.
- Navigeer naar het tabblad Details, waar je de details van de taak zult zien.
- Klik onderaan de pagina op Starten om de taak te starten.

Zoals je hieronder kunt zien, is de taak succesvol uitgevoerd op localhost en zijn alle bestanden in de opgegeven map in het playbook (ata.yml) vermeld.

Conclusie
In deze handleiding heb je gebruik gemaakt van de Ansible AWX open-source tool om Ansible-playbooks, inventarisaties en playbooks te beheren met een enkelvoudig UI Dashboard. Je hebt een Ansible-taak uitgevoerd, zoals het vermelden van bestanden in een specifieke map.
Nu je een degelijke kennis hebt van de Ansible AWX-software, ben je bereid om al je toekomstige Ansible-playbooks uit te voeren met behulp van Ansible AWX? Misschien wil je taken automatiseren door cron-taken toe te voegen?