How to tell what ansible-core version is associated to a awx version?

I have been trying to find a way to determine what version of ansible-core is associated to a specific AWX version. The person who was in charge of handling the ansible box setup/deployment left the company and I am left trying to fill in some knowledge gaps. While I haven’t found any documentation stating AWX version N.N.NN utilizes ansible-core version N.N.NN I seem to have stumbled across a few threads nothing AWX 17.N.NN utilizes ansible-core 2.9.NN. When I log in to one of our AWX instances I can see the following that seems to support that:

Our newest AWX instance is version 19.5.2 but for whatever reason it doesn’t note the Ansible version.

Our fear is that our ansible-core version will become unsupported based on the Ansible release and maintenance cycle documentation. Currently, we are utilizing docker but there is note that docker is no longer the recommended containerization management method and that kubernetes should be used. Thus updating our AWX version to ensure we have a supported ansible-core version could prove costly as kubernetes requires multiple cores and has a larger footprint than docker which would drive our GCP costs up. I did find documentation on how to install AWX on an Ubunto 20.04 (which we have) using k3s but this would also seem to increase our expenses as the recommendation is to have at least 4 cores.

If we could determine what ansible-core version is tied to a given AWX version it would allow us to determine a better timeline on when we would have to figure out how to move away from docker and toward kubernetes. It would also afford us more time to determine what the increase in cost would be and obtain approval to move forward with those added expenses. We are also kicking the tires on purchasing Ansible Tower but fear that cost would be astronomical for our use case (hundreds of customers we would be looking to maintain where each customer could have hundreds of machines for us to install/update network services on).

If anyone has any information that would help determine the link between AWX and ansible-core versions or how pricing would work with Ansible Tower based on our use case I’d appreciate your insight.

Hi Jonathan,

Recent version of AWX use the concept of Execution Environment to containerize the environment needed to run playbooks (you can have multiple ones for each type of jobs). See the AWX/Tower docs for the EE concept.

The default Execution Environment uses https://quay.io/repository/ansible/awx-ee and this is where I would look to find the information about the associated versions. I have not dived myself into the specifics, the EE default image is itself based on the quay.io/ansible/ansible-runner one (cf the image layers) but I don’t know exactly which version of Ansible is pulled there.

The easiest would be to actually run a playbook using the default EE and display the value of the ansible_version dict. This would provide what you need.

The good news is that you can always rebuild an EE with the version of Ansible you need, even if unsupported.

As a sidenode on Kubernetes, if you are running 19.5.2, you already are using Kubernetes underneath (unless you spun up the Docker-based version which is only used for locally developing AWX itself).

I can’t answer for the Ansible Tower pricing since we do not use it.

Vincent

Thank you for the info Vincent!