Scaling AWX

Hey Everyone,

I’m attempting to scale AWX, but am constantly running into road blocks. I have a couple of questions and hope someone from the community can point me in the right direction:

  1. Is there a scaling guide for AWX? I’m sure a number of shops have run into this previously, so any best practices that the community has come up with would be awesome!

  2. Is it possible to select a Container group for a job_template launch using the awx cli? or maybe a curl command? I’m attempting to isolate portions of my inventory to run on specific container groups so that we can scale. I might have to put in more work, but it’ll be pretty simple from a python scripting perspective.

That’s it for now. Thanks!

Hey Everyone,

I’m attempting to scale AWX, but am constantly running into road blocks. I have a couple of questions and hope someone from the community can point me in the right direction:

  1. Is there a scaling guide for AWX? I’m sure a number of shops have run into this previously, so any best practices that the community has come up with would be awesome!

I’m not aware of a scaling guide specifically for AWX.

For the downstream Red Hat offerings there exists:

https://access.redhat.com/documentation/en-us/red_hat_ansible_automation_platform/2.4/html/red_hat_ansible_automation_platform_performance_considerations_for_operator_based_installations/index?extIdCarryOver=true&sc_cid=701f2000001OH6uAAG

And also useful, the reference architecture for AAP on Openshift:
https://access.redhat.com/documentation/en-us/reference_architectures/2023/html-single/deploying_ansible_automation_platform_2_on_red_hat_openshift/index#before_you_start

There are scatterings of many relevant settings/options for scaling the cluster in different ways. What are some of the road blocks you are running into? Maybe could link to more specific docs or use to help formulate what you are requesting.

  1. Is it possible to select a Container group for a job_template launch using the awx cli? or maybe a curl command? I’m attempting to isolate portions of my inventory to run on specific container groups so that we can scale. I might have to put in more work, but it’ll be pretty simple from a python scripting perspective.

You can assign a container group to a job template or in most recent versions this is now a “prompt on launch” compatible attribute, so you could at launch time indicate the container group. Note that container groups in the API are referred to as instance groups, they are just a specific type of instance group. See https://github.com/ansible/awx/pull/12875 and https://docs.ansible.com/automation-controller/4.3/html/controllercli/reference.html#awx-job-templates-launch

Think it would be something along the lines of

awx job_templates launch --instance_groups 1 7

that **should** launch job template id 7 with instance group id 1
granted you need to be on a recent enough version of CLI and awx to support this.

Hey thanks for answering!

a little bit more.

the hope / goal is to have a openshift/k8s/k3s cluster in each region/dc that can host jobs from awx and thus run the ansible much much much closer to the nodes. ideally, I would have an instance group as close as a single switch away from the nodes.

I want to get as close to running ansible-pull as I can with AWX.

in case you haven’t seen this link, here is a good place to read up on scaling AAP. Many of the concepts should apply to AWX on k8s as well

https://docs.ansible.com/automation-controller/latest/html/administration/performance.html

AWX Team

thanks, reading up on this. but also looking to update my awx instance, very worried about destroying this as it was deployed by another employee. so trying to figure out awx backups and restoration.

Yes be sure to do a backup first

AWX Team

ok, feature request, awx backup mechanism! lol

We do have mechanism in place for this, you can view that here: https://github.com/ansible/awx-operator/blob/devel/roles/backup/README.md