AWX signifie "Ansible Web eXecutable" est un projet gratuit et open-source qui vous permet de gérer et de contrôler facilement les projets Ansible. AWX fournit une interface utilisateur basée sur le Web, une API REST puissante et vous permet de gérer ou de synchroniser l'inventaire avec d'autres sources cloud, de contrôler l'accès et de s'intégrer à LDAP.
Dans ce didacticiel, nous allons vous montrer comment installer AWX Ansible AWX avec Docker sur Rocky Linux 8.3 et CentOS 8.
Condition préalable
- Serveur Rocky Linux 8.3 ou CentOS 8 avec au moins 4 Go de RAM.
- Connectez-vous en tant qu'utilisateur root ou utilisateur avec les privilèges sudo
Avant de commencer
Ajoutez le référentiel EPEL sur le système avec la commande suivante :
dnf install epel-release -y
Ensuite, vous devrez installer des packages supplémentaires nécessaires pour exécuter AWX sur le système. Vous pouvez tous les installer avec la commande suivante :
dnf install git gcc gcc-c++ ansible nodejs gettext device-mapper-persistent-data lvm2 bzip2 python3-pip -y
Une fois tous les packages installés, vous pouvez passer à l'étape suivante.
Installer Docker et Docker Compose
Ensuite, nous devons installer Docker pour exécuter AWX dans un conteneur Docker. Par défaut, la dernière version de Docker n'est pas disponible dans les référentiels CentOS 8 par défaut. Vous devez donc ajouter le référentiel Docker sur votre système. Vous pouvez ajouter le référentiel Docker avec la commande suivante :
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Une fois ajouté, installez la dernière version stable de Docker avec la commande suivante :
dnf install docker-ce-3:18.09.1-3.el7 -y
Une fois Docker installé, vérifiez quelle version de Docker est installée avec la commande suivante :
docker --version
Vous devriez obtenir quelque chose comme ceci :
Docker version 19.03.7, build 7141c199a2
Ensuite, démarrez le service Docker et activez-le après le redémarrage du système avec la commande suivante :
systemctl start docker systemctl enable docker
Vous pouvez vérifier l'état du service Docker avec la commande suivante :
systemctl status docker
Vous devriez obtenir quelque chose comme ceci :
? 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>
Ensuite, installez Docker compose à l'aide de la commande suivante :
pip3 install docker-compose
Une fois installé, vérifiez la version de Docker compose à l'aide de la commande suivante :
docker-compose --version
Vous verrez la sortie suivante :
docker-compose version 1.25.4, build unknown
Enfin, exécutez la commande suivante pour configurer la commande python afin qu'elle utilise python 3 :
alternatives --set python /usr/bin/python3
Comment installer Google Chrome sur Ubuntu 20.04 et Ubuntu 21.04
Installer CentOS 8 Ansible AWX
Tout d'abord, téléchargez la dernière version d'Ansible AWX à partir du référentiel Git Hub à l'aide de la commande suivante :
git clone https://github.com/ansible/awx.git
Ensuite, créez une clé secrète pour chiffrer le fichier d'inventaire avec la commande suivante :
openssl rand -base64 30
Vous obtiendrez le résultat suivant :
R + kbcDEUS8DlAftAbtWafVfLZ0lUy + Paqo3fEtep
Remarque :Notez la clé secrète qui apparaît en la copiant-collant dans un éditeur de texte, car vous devez la coller dans le fichier d'inventaire.
Ensuite, allez dans le répertoire awx/installer/ et éditez le fichier d'inventaire avec un éditeur de texte nano
:
cd awx/installer/ nano inventory
Modifiez les lignes suivantes :
[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
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, créez un répertoire pour Postgres :
mkdir /var/lib/pgdocker
Enfin, exécutez la commande suivante pour installer AWX :
ansible-playbook -i inventory install.yml
Une fois l'installation terminée avec succès, vous devriez obtenir le résultat suivant :
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
La commande ci-dessus créera et démarrera tous les conteneurs Docker nécessaires pour AWX. Vous pouvez vérifier un conteneur en cours d'exécution avec la commande suivante :
docker ps
Vous verrez la sortie suivante :
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
Comment installer Laravel sur Ubuntu 20.04
Configurer SELinux et le pare-feu
Par défaut, SELinux est activé sur CentOS 8. Il est recommandé de le désactiver pour faire fonctionner AWX dans l'environnement Docker. Vous pouvez le désactiver en éditant le fichier suivant :
nano /etc/sysconfig/selinux
Recherchez la ligne suivante :
SELINUX=enforcing
Et remplacez-le par la ligne suivante :
SELINUX=disabled
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le système pour appliquer les modifications. Ensuite, vous devez autoriser les services http et https via firewalld. Vous pouvez les autoriser avec la commande suivante :
firewall-cmd --zone=public --add-masquerade --permanent firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https
Ensuite, redémarrez le service firewalld pour appliquer les modifications :
firewall-cmd --reload
Accès à l'interface Web AWX
Maintenant, ouvrez votre navigateur Web et saisissez l'URL http:// domain_ or_server-ip. Vous serez dirigé vers la page de connexion AWX :
Fournissez votre nom d'utilisateur et votre mot de passe d'administrateur que vous avez définis dans le fichier d'inventaire et cliquez sur le bouton CONNEXION . Vous verrez le tableau de bord par défaut d'AWX sur la page suivante :
Conclusion
Toutes nos félicitations! Vous avez installé avec succès AWX avec Docker sur Rocky Linux 8.3 et CentOS 8. Vous pouvez désormais gérer et contrôler facilement vos projets Ansible à l'aide de l'interface Web AWX.
Comment installer et configurer Java sur Ubuntu 20.04