Embedded Ansible using AWX
Background
In ManageIQ Fine release, it is configured to use Ansible Tower for Embedded Ansible role. Integrating Ansible Tower in ManageIQ requires a tower license.
Info
Procedure to setup Embedded Ansible in ManageIQ Fine version is described in Setup Embedded Ansible
In Gaprindashvili release of ManageIQ, Ansible Tower is replaced by AWX for implementation of Embedded Ansible. AWX is open source project around the Ansible Tower codebase. Unlike Ansible Tower, AWX doesn't requires license to be added for enabling Embedded Ansible in ManageIQ.
AWX inside ManageIQ Appliance
AWX is deployed as group of containers inside ManageIQ appliance. EVM manage awx containers using the docker-api gem. When Embedded Ansible role is enabled on an appliance, it pulls latest awx docker images and run the containers.
To enlist docker images, type docker images in the terminal of ManageIQ appliance.
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ansible/awx_task latest e45b49c04679 4 days ago 1.017 GB
docker.io/ansible/awx_web latest 2340b2955aa4 4 days ago 989.5 MB
docker.io/memcached alpine 5c28baaba1e0 13 days ago 7.871 MB
docker.io/rabbitmq 3 02c3edbcf3d1 3 weeks ago 126.9 MBThese four docker images are necessary to start awx properly. AWX docker containers are linked together. To view the running containers, use docker ps command:
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
88542be75c63 ansible/awx_task:latest "/tini -- /bin/sh -c " 3 hours ago Up 3 hours 8052/tcp awx_task
8cfc034ebffb ansible/awx_web:latest "/tini -- /bin/sh -c " 3 hours ago Up 3 hours 0.0.0.0:54321->8052/tcp awx_web
221989ad1c44 memcached:alpine "docker-entrypoint.sh" 3 hours ago Up 3 hours 11211/tcp memcached
0c0556dc8277 rabbitmq:3 "docker-entrypoint.sh" 3 hours ago Up 3 hours 4369/tcp, 5671-5672/tcp, 25672/tcp rabbitmqNote
If docker ps command doesn't display these containers then check the status of 'EmbeddedAnsibleWorker' using cd vmdb; rake evm:status. Make sure that its status is started.
AWX Containers Log
After the containers are started, it is able to see their logs for monitoring awx progress.
To display logs in terminal, type command as follow:
Access AWX Bash
Sometimes, it is need to access bash for the containers like to check status of ansible job. To access the bash of awx_task, run docker exec -it <container id> /bin/bash command.
Path /var/lib/awx/job_status/ in container stores the status of tower job.
Last updated