Ansible AWX Gids: Basisgebruik en configuratie

AWX is een open source webapplicatie die een gebruikersinterface, REST API, en takenmotor voor Ansible biedt. Het is de open source versie van de Ansible Tower. Met de AWX kun je Ansible playbooks beheren, inventarissen bijhouden, en uit te voeren opdrachten plannen via de webinterface.

In deze zelfstudie laten we je basisgebruik van de Ansible AWX zien. Je hebt dus een server nodig waarop Ansible AWX al geïnstalleerd is. We behandelen enkele basis configuraties van Ansible AWX die je moet kennen, zoals credentials instellen, inventarissen, job templates instellen en uitvoeren, enz. Als je Ansible nog niet geïnstalleerd hebt, bekijk dan deze zelfstudie:https://www.howtoforge.com/how-to-install-ansible-awx-with-nginx-reverse-proxy-on-ubuntu-1804/.

Vereisten

  • 2 of 3 servers
    • 10.5.5.20 ansible-awx
    • 10.5.5.21 lemp
  • Basiskennis over Ansible
  • Root voorrechten

Wat we zullen doen:

  1. Omgeving instellen en configureren
  2. Instelling Geloofsbrieven
  3. Inventarissen opzetten
  4. Projecten instellen
  5. Opdrachtsjablonen instellen
  6. Banen uitvoeren

Stap 1 – Omgeving instellen en configureren

In deze zelfstudie gaan we het Ansible speelboek voor basis LEMP installatie inzetten en uitvoeren dacht het Ansible AWX dashboard.

We hebben twee servers voor de awx zelf en de doelmachine.

10.5.5.20   ansible-awx
10.5.5.21   lemp

Nu gaan we het speelboek uitrollen als de gebruiker genaamd ‘hakase’ en gebruiken we de sleutel-gebaseerde SSH authenticatie. Zorg er dus voor dat je de gebruiker en sleutel-gebaseerde authenticatie al ingesteld hebt op de doelmachine ‘lemp’.

Test met het volgende commando vanaf de‘ansible-awx‘ server.

su - hakase
ssh [email protected]

Zorg ervoor dat je zonder wachtwoord bent ingelogd.

Nu moet de ‘hakase’ gebruiker de root wachtwoordloos hebben om taken te kunnen uitvoeren.

Voer op de doelmachine‘lemp‘ het sudo commando uit zoals hieronder.

su - hakase
sudo su

Zorg ervoor dat je de root privileges zonder wachtwoord hebt ingevoerd.

Nu moet je de python pakketten installeren op alle doelmachines die door Ansible beheerd worden.

sudo apt install python -y

Installeer Python

Stap 2 – Credentials instellen

Eerst moeten we de Ansible AWX Credentials instellen. Die wordt gebruikt voor authenticatie bij het starten en uitvoeren van jobs tegen beheerde servers, synchroniseren met inventaris bronnen en importeren van projecten.

Standaard ondersteunt de Ansible AWX voor veel geloofsbrieven, waaronder de VM machine via SSH authenticatie, Amazon Web Services, Google Compute Engine, OpenStack, Vault wachtwoord, Source Control enz.

Om credentials in te stellen, klik je links op het menu‘Credentials‘ en rechts daarvan op de ‘+’ knop.

Instelling geloofsbrieven

Typ nu de geloofsbrieven‘NAAM‘ en‘BESCHRIJVING‘, en specificeer dan het‘CREDENTIEEL TYPE‘ op‘Machine‘.

Met de ‘Machine’ geloofsbrieven kun je eenvoudig de SSH authenticatie gebruiken voor het beheren van servers. Het ondersteunt zowel wachtwoord- als sleutelgebaseerde authenticatie.

Voor deze gids zullen we de sleutel-gebaseerde authenticatie gebruiken. Typ dus de gebruikersnaam en plak de private sleutels voor die gebruiker.

sleutelgebaseerde authenticatie

Klik dan op de‘SAVE‘ knop.

Als resultaat is het nieuwe Ansible AWX credentials type ‘Machine’ aangemaakt.

Ansible AWX geloofsbrieven

Stap 3 – Inventarissen instellen

Inventarissen zijn groepen host servers die door Ansible AWX beheerd worden. Met de inventarissen kun je een groep maken met meerdere host-servers erop. En het maakt het gemakkelijker om verschillende servers met verschillende omgevingen te beheren.

Om servers te beheren en van hosts te voorzien, moeten we een nieuwe inventaris groep maken en dan server hosts aan die inventaris groep toevoegen.

Om een nieuwe inventaris toe te voegen, klik je links op het menu‘Inventories‘, dan op de ‘+’ knop en kies de ‘Inventory’.

Instellen van AWX Voorraden

Typ de‘NAME‘ en‘DESCRIPTION‘ van de inventaris, en klik dan op de‘SAVE‘ knop.

Naam en beschrijving

Klik nu op het tabblad‘HOSTS‘, en klik op de ‘+’ knop om nieuwe hosts toe te voegen.

gastheren

Typ de‘HOST NAME‘,‘DESCRIPTION‘, en de‘VARIABLES‘ met aanvullende configuratie voor het IP adres van de doelmachine ‘ansible_host: 10.5.5.21’.

Hostnaam en variabelen

Klik nu op de knop‘SAVE‘.

Vervolgens moeten we de hosts configuratie verzekeren door de hosts te controleren met het ping commando.

Ga terug naar het tabblad‘HOSTS‘, vink de naamserver van je hosts aan en klik op de knop‘RUN COMMANDS‘.

run commando's

Kies nu de‘MODULE‘ genaamd‘ping‘, klik op de zoekknop binnen de‘MACHINE CREDENTIAL‘ en‘SELECTEER’ je eigen, klik dan op de‘LAUNCH‘ knop.

Machine legitimatie

En je wordt doorgestuurd naar de nieuwe pagina en hieronder is het resultaat.

Resultaat van de uitvoering van het awx script

Een nieuwe inventaris is aangemaakt, en de doelmachine server is er aan toegevoegd.

Stap 4 – Projecten opzetten

Projecten worden in de AWX voorgesteld als Ansible Playbooks. Het zijn verzamelingen Ansible Playbooks die we kunnen beheren via de lokale projectdirectory of via het SCM systeem zoals Git, Subversion, Mercurial, en RedHat Insights.

Om nieuwe projecten te maken, klik je op het‘Projecten‘ menu links en op de ‘+’ knop.

AWX projecten

Typ de‘NAME‘ van je project en de‘DESCRIPTION‘, kies dan het‘SCM TYPE‘ op‘Git‘ en plak je speelboek repository.

Naam, beschrijving en scm type

Klik nu op de‘SAVE‘ knop en als resultaat is een nieuw project voor het speelboek aangemaakt.

Project is toegevoegd

Aanvullend:

Als je een nieuw project met het SCM type‘Handmatig‘ wilt maken, kun je een nieuwe playbooks map aanmaken die zich onder de‘/var/lib/awx/projects‘ map bevindt.

De ‘/var/lib/awx/projects’ directory is de standaard projectdirectory voor je Ansible playbooks als je de AWX docker versie gebruikt met de‘project_data_dir‘ ingeschakeld.

Stap 5 – Maak nieuwe jobsjablonen

Het jobsjabloon is de definitie van het uitvoeren van Ansible speelboeken zelf. Dus, om een nieuw jobsjabloon te maken of het uit te voeren, moeten we het Ansible speelboek van ons ‘Project’ toevoegen, de ‘Credentials’ voor authenticatie, en de doelmachines die op de ‘Inventories’ staan.

Voor deze gids hebben we al een nieuw Project, Credential, en Inventaris aangemaakt. Klik dus links op het menu‘Templates‘, klik dan op de ‘ +’ knop en kies de optie‘Job template‘.

Werksjabloon toevoegen

Nu moet je de‘NAAM‘ en‘BESCHRIJVING‘ van de baan intypen. Kies dan de‘INVENTORY‘,‘CREDENTIAL‘, en het‘PROJECT‘. En geef daarna de‘PLAYBOOK‘ op die je wilt uitvoeren en inzetten.

Voeg projectgegevens over het werk toe

En als resultaat is het nieuwe jobsjabloon Ansible AWX aangemaakt.

Stap 6 – Voer het Jobsjabloon uit

Nadat we het nieuwe jobsjabloon gemaakt hebben, gaan we het uitvoeren en de Playbooks ‘Projecten’ uitrollen naar doelhosts op de ‘Inventaris’.

Klik op het‘Templates‘ menu aan de linkerkant en je krijgt lijsten van beschikbare jobsjablonen.

Voer het Baansjabloon uit

Als de job klaar is, krijg je het groene teken binnen de naam van de jobsjabloon.

Sjabloon run resultaat

Klik op het groene teken binnen de naam van het jobsjabloon en je krijgt het actuele resultaat van die job te zien.

Resultaat van de opdracht

De job is met succes voltooid, en op de doelmachine is de LEMP Stack geïnstalleerd via de Ansible AWX.

Stap 7 – Testen van de doelmachine

Test de domeinnaam van de doelmachine. De domeinnaam configuratie is opgeslagen in de‘roles/web/vars/main.yml‘ configuratie.

Test doelserver

Het controleren van de Nginx en PHP-FPM diensten met systemctl commando’s.

systemctl status nginx
systemctl status php7.2-fpm

Nginx en php-fpm status

Het testen van de MySQL database op de doelmachine. Detailconfiguraties van de MySQL database opgeslagen in het ‘roles/db/vars/main.yml’ configuratiebestand.

MySQL status

Het resultaat is dat de LEMP Stack op de doelmachine geïnstalleerd is via de Ansible AWX.

Referentie