Ansible AWX installeren op Debian 10

Ansible is een open-source automatiseringstool dat gebruikt wordt voor software provisioning, configuratiebeheer, en het uitrollen van toepassingen. Je kunt er toepassingen automatisch mee installeren, configureren en inzetten op meerdere systemen.

AWX is een web-gebaseerde toepassing die gebruikt wordt om Ansible te beheren. Je kunt Ansible playbooks, inventarissen, Geheimen, en geplande opdrachten beheren vanuit een AWX webinterface.

Kenmerken

  • Ondersteuning van meerdere clouds zoals AWS, Azure, en GCP
  • Volgen van gebruikersactiviteiten
  • Verhoog efficiëntie & veiligheid
  • Rolgebaseerde toegangscontrole van gebruikers & Authenticatie
  • Taken plannen
  • Geïntegreerde meldingen

In dit artikel laten we je zien hoe je AWX op een Debian 10 server kunt installeren.

Vereisten

  • Een server waarop Debian 10 draait.
  • Een root wachtwoord is op de server ingesteld.

Aan de slag

Werk eerst alle systeempakketten bij naar de nieuwste versie met het volgende commando:

apt-get update -y

Zodra alle pakketten zijn bijgewerkt, installeer je andere benodigde pakketten met het volgende commando:

apt-get install apt-transport-https ca-certificates software-properties-common unzip gnupg2 curl git -y

Nadat alle pakketten geïnstalleerd zijn, kun je verder gaan met de volgende stap.

Installeer Ansible

Vervolgens moet je Ansible op je systeem installeren. Standaard is de nieuwste versie van Ansible niet opgenomen in de Debian 10 repository. Je zult dus de Ansible repository aan APT moeten toevoegen. Je kunt het toevoegen met het volgende commando:

echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" | tee /etc/apt/sources.list.d/ansible.list

Als de repository is toegevoegd, voeg je de GPG sleutel toe met het volgende commando:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367

Werk vervolgens de repository bij en installeer de nieuwste versie van Ansible met het volgende commando:

apt-get update -y
apt-get install ansible -y

Als Ansible geïnstalleerd is, kun je de geïnstalleerde versie van Ansible verifiëren met het volgende commando:

ansible --version

Je zou de volgende uitvoer moeten krijgen:

ansible 2.9.19
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.16 (default, Oct 10 2019, 22:02:15) [GCC 8.3.0]

Op dit punt is Ansible geïnstalleerd in je systeem. Je kunt nu verder gaan met de volgende stap.

Installeer Docker en Docker Compose

Vervolgens moet je Docker en Docker Compose op je systeem installeren. Standaard is de nieuwste versie van Docker niet beschikbaar in de standaard repository van Debian 10. Je zult dus de Docker CE repository aan je systeem moeten toevoegen. Voeg eerst de Docker sleutel en repository toe met het volgende commando:

curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

Werk vervolgens de repository bij en installeer de Docker CE met het volgende commando:

apt-get update -y
apt-get install docker-ce -y

Als de Docker geïnstalleerd is, controleer dan de Docker versie met het volgende commando:

docker --version

Je zou de volgende uitvoer moeten zien:

Docker version 20.10.5, build 55c4c88

Vervolgens moet je de nieuwste versie van Docker Compose op je systeem installeren. Je kunt de Docker Compose binary downloaden met het volgende commando:

curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url | grep docker-compose-Linux-x86_64 | cut -d '"' -f 4 | wget -qi -

Zodra de download voltooid is, stel je de juiste toestemming in met het volgende commando:

chmod +x docker-compose-Linux-x86_64

Verplaats vervolgens de Docker Compose binary naar het systeempad met het volgende commando:

mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

Controleer vervolgens de Docker Compose versie met het volgende commando:

docker-compose version

Je zou de volgende uitvoer moeten krijgen:

docker-compose version 1.28.5, build c4eb3a1f
docker-py version: 4.4.4
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

Op dit punt zijn Docker en Docker Compose geïnstalleerd in je systeem. Je kunt nu verder gaan met de volgende stap.

Installeer Node.js en NPM

Vervolgens moet je Node.js en NPM in je systeem installeren. Je kunt Node.js en NPM installeren met het volgende commando:

apt-get install nodejs npm -y
npm install npm --global

Installeer vervolgens andere Python afhankelijkheden met het volgende commando:

apt-get install python3-pip git pwgen -y

Installeer vervolgens Docker Compose module die passen bij je Docker Compose versie met het volgende commando:

pip3 install docker-compose==1.28.5

Als je klaar bent, kun je verder gaan met de volgende stap.

Opmerking: Zorg ervoor dat 1.28.5 overeenkomt met de Docker Compose versie die in je systeem geïnstalleerd is.

Installeer AWX

Vervolgens moet je AWX in je systeem installeren. Download eerst de AWX uit de Git Hub repository met het volgende commando:

wget https://github.com/ansible/awx/archive/17.1.0.zip

Als de download voltooid is, pak je het gedownloade bestand uit met het volgende commando:

unzip 17.1.0.zip

Verander vervolgens de directory in installer met het volgende commando:

cd awx-17.1.0/installer/

Genereer vervolgens de secrete sleutel door het volgende commando uit te voeren:

pwgen -N 1 -s 30

Je zou de volgende uitvoer moeten krijgen:

3BgGA8MnM4gKTXV8r7vQhwjjNixO6o

Bewerk vervolgens het inventarisbestand en definieer je admin gebruikersnaam, wachtwoord en secrete sleutel:

nano inventory

Verander de volgende regels:

admin_user=admin
admin_password=securepassword
secret_key=3BgGA8MnM4gKTXV8r7vQhwjjNixO6o

Bewaar en sluit het bestand als je klaar bent en installeer dan de AWX door het volgende commando uit te voeren:

ansible-playbook -i inventory install.yml

Als de AWX met succes geïnstalleerd is, zou je de volgende uitvoer moeten krijgen:

changed: [localhost]

TASK [local_docker : Create Docker Compose Configuration] *************************************************************************************
changed: [localhost] => (item={u'mode': u'0600', u'file': u'environment.sh'})
changed: [localhost] => (item={u'mode': u'0600', u'file': u'credentials.py'})
changed: [localhost] => (item={u'mode': u'0600', u'file': u'docker-compose.yml'})
changed: [localhost] => (item={u'mode': u'0600', u'file': u'nginx.conf'})
changed: [localhost] => (item={u'mode': u'0664', u'file': u'redis.conf'})

TASK [local_docker : Render SECRET_KEY file] **************************************************************************************************
changed: [localhost]

TASK [local_docker : Remove AWX containers before migrating postgres so that the old postgres container does not get used] ********************
ok: [localhost]

TASK [local_docker : Run migrations in task container] ****************************************************************************************
changed: [localhost]

TASK [local_docker : Start the containers] ****************************************************************************************************
changed: [localhost]

TASK [local_docker : Update CA trust in awx_web container] ************************************************************************************
changed: [localhost]

TASK [local_docker : Update CA trust in awx_task container] ***********************************************************************************
changed: [localhost]

TASK [local_docker : Wait for launch script to create user] ***********************************************************************************
ok: [localhost]

TASK [local_docker : Create Preload data] *****************************************************************************************************
changed: [localhost]

PLAY RECAP ************************************************************************************************************************************
localhost                  : ok=21   changed=12   unreachable=0    failed=0    skipped=73   rescued=0    ignored=1   

Op dit punt is AWX in je systeem geïnstalleerd. Je kunt nu verder gaan om de AWX web UI te openen.

Toegang tot Ansible AWX

Open nu je web browser en open de Ansible AWX webinterface met de URL http://your-server-ip. Je wordt doorgestuurd naar de AWX login pagina:

Ansible AWX Inloggen

Geef je admin gebruikersnaam en wachtwoord op en klik op de Log In knop. Je zou het Ansible AWX dashboard op de volgende pagina moeten zien:

Ansible AWX dashboard

Conclusie

Gefeliciteerd! Je hebt Ansible AWX met succes geïnstalleerd op Debian 10 server. Je kunt nu gemakkelijk het Ansible playbook, de inventaris en de jobs beheren vanaf het AWX dashboard. Voel je vrij om me te vragen als je vragen hebt.