
AWX sta per "Ansible Web eXecutable" è un progetto gratuito e open source che consente di gestire e controllare facilmente i progetti Ansible. AWX fornisce un'interfaccia utente basata sul Web, una potente API REST e consente di gestire o sincronizzare l'inventario con altre origini cloud, controllare l'accesso e integrarsi con LDAP.
In questo tutorial, ti mostreremo come installare AWX Ansible AWX con Docker su Rocky Linux 8.3 e CentOS 8.
Prerequisito
- Server Rocky Linux 8.3 o CentOS 8 con minimo 4 GB di RAM.
- Accedi come root o utente con privilegi sudo
Prima di iniziare
Aggiungi il repository EPEL sul sistema con il seguente comando:
dnf install epel-release -y
Successivamente, dovrai installare alcuni pacchetti aggiuntivi necessari per eseguire AWX sul sistema. Puoi installarli tutti con il seguente comando:
dnf install git gcc gcc-c++ ansible nodejs gettext device-mapper-persistent-data lvm2 bzip2 python3-pip -y
Una volta installati tutti i pacchetti, puoi passare al passaggio successivo.
Installa Docker e Docker Compose
Successivamente, è necessario installare Docker per eseguire AWX all'interno di un contenitore Docker. Per impostazione predefinita, l'ultima versione di Docker non è disponibile nei repository CentOS 8 predefiniti. Quindi è necessario aggiungere il repository Docker sul sistema. Puoi aggiungere il repository Docker con il seguente comando:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Una volta aggiunta, installa l'ultima versione stabile di Docker con il seguente comando:
dnf install docker-ce-3:18.09.1-3.el7 -y
Una volta installato Docker, controlla quale versione di Docker è installata con il seguente comando:
docker --version
Dovresti ottenere qualcosa del genere:
Docker version 19.03.7, build 7141c199a2
Quindi, avvia il servizio Docker e abilitalo all'avvio dopo il riavvio del sistema con il seguente comando:
systemctl start docker systemctl enable docker
Puoi verificare lo stato del servizio Docker con il seguente comando:
systemctl status docker
Dovresti ottenere qualcosa del genere:
? docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2020-03-11 02:36:04 EDT; 23min ago Docs: https://docs.docker.com Main PID: 5882 (dockerd) Tasks: 101 Memory: 2.6G CGroup: /system.slice/docker.service ??5882 /usr/bin/dockerd -H fd:// ??5899 containerd --config /var/run/docker/containerd/containerd.toml --log-level info ??8815 containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/4b91575d64b1b> ??8847 containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/0f36c9784f748> ??8894 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.18.0.5 -container-port 8052 ??8899 containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/47300ec1c26ff> ??8923 containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/9827b9831fa5b> ??9631 containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/166b153faa275>
Quindi, installa Docker Compose utilizzando il seguente comando:
pip3 install docker-compose
Una volta installato, verifica la versione di Docker Compose utilizzando il seguente comando:
docker-compose --version
Vedrai il seguente output:
docker-compose version 1.25.4, build unknown
Infine, esegui il comando seguente per impostare il comando python per utilizzare python 3:
alternatives --set python /usr/bin/python3
Come installare Google Chrome su Ubuntu 20.04 e Ubuntu 21.04
Installa CentOS 8 Ansible AWX
Innanzitutto, scarica l'ultima versione di Ansible AWX dal repository Git Hub utilizzando il comando seguente:
git clone https://github.com/ansible/awx.git
Quindi, crea una chiave segreta per crittografare il file di inventario con il seguente comando:
openssl rand -base64 30
Otterrai il seguente output:
R + kbcDEUS8DlAftAbtWafVfLZ0lUy + Paqo3fEtep
Nota :Annota la chiave segreta che appare copiandola e incollandola in un editor di testo, perché devi incollarla nel file di inventario.
Quindi, passa alla directory awx/installer / e modifica il file di inventario con un editor di testo nano
:
cd awx/installer/ nano inventory
Modifica le seguenti righe:
[all: vars] dockerhub_base = ansible awx_task_hostname = awx awx_web_hostname = awxweb postgres_data_dir = "/ var / lib / pgdocker" host_port = 80 host_port_ssl = 443 docker_compose_dir = "~ / .awx / awxcompose" pg_username = awx pg_password = awxpass pg_database = awx pg_port = 5432 pg_admin_password = password rabbitmq_password = awxpass rabbitmq_erlang_cookie = cookiemonster admin_user = admin admin_password = password create_preload_data = True secret_key = R + kbcDEUS8DlAftAbtWafVfLZ0lUy + Paqo3fEtep awx_official = true awx_alternate_dns_servers = "8.8.8.8,8.8.4.4" project_data_dir = / var / lib / awx / projects
Salva e chiudi il file quando hai finito. Quindi, Crea directory per Postgres:
mkdir /var/lib/pgdocker
Infine, esegui il comando seguente per installare AWX:
ansible-playbook -i inventory install.yml
Al termine dell'installazione, dovresti ottenere il seguente output:
skipping: [localhost] TASK [local_docker : Load web image] ********************************************************************************************************** skipping: [localhost] TASK [local_docker : Load task image] ********************************************************************************************************* skipping: [localhost] TASK [local_docker : Set full image path for local install] *********************************************************************************** skipping: [localhost] TASK [local_docker : Set DockerHub Image Paths] *********************************************************************************************** ok: [localhost] TASK [local_docker : Create ~/.awx/awxcompose directory] ************************************************************************************** changed: [localhost] TASK [local_docker : Create Docker Compose Configuration] ************************************************************************************* changed: [localhost] => (item=environment.sh) changed: [localhost] => (item=credentials.py) changed: [localhost] => (item=docker-compose.yml) changed: [localhost] => (item=nginx.conf) TASK [local_docker : Render SECRET_KEY file] ************************************************************************************************** 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] PLAY RECAP ************************************************************************************************************************************ localhost : ok=14 changed=6 unreachable=0 failed=0 skipped=95 rescued=0 ignored=0
Il comando sopra creerà e avvierà tutti i contenitori Docker necessari per AWX. Puoi verificare un container in esecuzione con il seguente comando:
docker ps
Vedrai il seguente output:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4b91575d64b1 ansible/awx_task:9.2.0 "/tini -- /bin/sh -c…" About a minute ago Up About a minute 8052/tcp awx_task 9827b9831fa5 ansible/awx_web:9.2.0 "/tini -- /bin/sh -c…" About a minute ago Up About a minute 0.0.0.0:80->8052/tcp awx_web 47300ec1c26f postgres:10 "docker-entrypoint.s…" About a minute ago Up About a minute 5432/tcp awx_postgres 166b153faa27 ansible/awx_rabbitmq:3.7.4 "docker-entrypoint.s…" About a minute ago Up 58 seconds 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp awx_rabbitmq 0f36c9784f74 memcached:alpine "docker-entrypoint.s…" About a minute ago Up About a minute 11211/tcp awx_memcached
Come installare Laravel su Ubuntu 20.04
Configura SELinux e Firewall
Per impostazione predefinita, SELinux è abilitato su CentOS 8. Si consiglia di disabilitarlo per funzionare con AWX in ambiente Docker. Puoi disabilitarlo modificando il seguente file:
nano /etc/sysconfig/selinux
Trova la riga seguente:
SELINUX=enforcing
E sostituiscilo con la seguente riga:
SELINUX=disabled
Salva e chiudi il file quando hai finito. Quindi, riavvia il sistema per implementare le modifiche. Successivamente, è necessario consentire i servizi http e https tramite firewalld. Puoi consentirli con il seguente comando:
firewall-cmd --zone=public --add-masquerade --permanent firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https
Quindi, riavvia il servizio firewalld per applicare le modifiche:
firewall-cmd --reload
Accesso all'interfaccia Web AWX
Ora apri il tuo browser web e digita l'URL http:// domain_ or_server-ip. Verrai indirizzato alla pagina di accesso di AWX:

Fornisci il nome utente e la password dell'amministratore che hai impostato nel file di inventario e fai clic sul pulsante ACCEDI . Vedrai la dashboard predefinita di AWX nella pagina seguente:

Conclusione
Congratulazioni! Hai installato correttamente AWX con Docker su Rocky Linux 8.3 e CentOS 8. Ora puoi gestire e controllare facilmente i tuoi progetti Ansible utilizzando l'interfaccia web AWX.
Come installare e configurare Java su Ubuntu 20.04