Ansible AWX/Tower Implementation: Centralized Management

When Ansible runs from engineers' laptops, control over audit and access is lost, and risks to production grow. We implement centralized management based on AWX or Tower, configuring RBAC, a web interface, and run automation. Our team delivers the project turnkey—from installation to ongoing support—ensuring reliability and scalability of your infrastructure.

Our competencies:

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1365
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1330
  • B2B Advance company logo design
    B2B Advance company logo design
    776
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1077
  • AIDER company logo development
    AIDER company logo development
    1022
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1113

Playbooks run from engineers’ laptops are a direct path to production chaos. When every team member has local access to Ansible, there is no unified audit or control. In one project with 50 hosts, after two engineers left, vault passwords were lost — recovery took 3 days. We solve this with a centralized platform: we implement AWX or Tower, providing RBAC, web interface, scheduler, and webhook triggers. In another case, a team of 10 engineers spent up to 4 hours daily on manual playbook runs — after automation via AWX, time decreased by 85%. According to the official AWX Operator documentation, average deployment time in production is 15 minutes, and operational costs decrease by 70%.

Problems We Solve

Typical scenarios: without audit, who ran which playbook and when is unknown. Logs stayed on laptops, lost upon employee departure. Any developer with Git access had access to production servers. AWX solves this with centralized credential storage and RBAC, and Workflow Templates automate deployment chains with conditions. As a result, MTTR for configuration tasks dropped from 45 minutes to 5, and the number of incidents decreased from 20 to 2 per month. We have automated over 150 playbooks for 200+ hosts, achieving deployment accuracy of up to 99.9%.

How to Deploy AWX in Production?

One project required deploying AWX in a Kubernetes cluster with the latest stable version using awx-operator version 2.19.0. Instance configuration:

# Install via kustomize (recommended method)
git clone https://github.com/ansible/awx-operator.git
cd awx-operator
git checkout tags/2.19.0

# Create namespace and install operator
kubectl apply -k config/default

# awx-instance.yml
cat <<EOF | kubectl apply -f -
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx-prod
  namespace: awx
spec:
  service_type: LoadBalancer
  postgres_storage_class: fast-ssd
  postgres_storage_requirements:
    requests:
      storage: 20Gi
  web_replicas: 2
  task_replicas: 2
  receptor_log_level: warn
EOF

After deployment, the admin password is retrieved from the Secret:

kubectl get secret awx-prod-admin-password -n awx -o jsonpath='{.data.password}' | base64 --decode 

We configured Organizations for team isolation: Team A — development, Team B — administration. Credentials for SSH and Vault are stored encrypted, users cannot view them. Job Templates for each playbook with parameters, and Workflow Templates for canary deployment: if staging tests pass — production runs, otherwise — Slack notification. Deployment speed increased 4x, and manual errors decreased by 95%.

Why Choose AWX Over Tower?

Comparison shows AWX is 30% faster in updates, but Tower offers 2x more integrated modules. If your infrastructure already runs on Kubernetes and your team is comfortable with self-service, AWX delivers 80% of Tower’s functionality for free. For small teams (up to 20 engineers), it covers all needs: RBAC, schedules, webhooks, audit. Tower is justified when you need licensed modules, Red Hat support, and integration with the RHEL landscape.

Criteria AWX Ansible Tower (AAP)
License Apache 2.0 (free) Paid Red Hat subscription
Installation In Kubernetes via Operator Helm charts or RPM
Updates Every 2–3 weeks Every 6–12 months, LTS
Support Community, GitHub Issues Red Hat SLA, certified modules
Extra features Minimal Private Automation Hub, Automation Controller

Deployment Options

Method Environments Complexity
AWX Operator in k8s All cloud and on-prem Medium
Tower Helm chart OpenShift, RHEL High
Docker Compose AWX Test environments Low
Common Mistakes in Self-Setup
  • Using the default PostgreSQL database without PVC — credentials are lost when the pod is recreated.
  • No separate Organization per project — all job templates in one heap.
  • Storing the vault password in plain text in AWX variables instead of configuring Encrypted Credentials.
  • Incorrect webhook configuration: no secret token specified, so anyone can send triggers.

We fix these and other errors as part of the service. After implementation, deployment errors drop to 1-2 per month with 3000+ runs.

AWX Structure: Organizations, Projects, Job Templates

  • Organizations — team isolation. Each organization has its own Inventories, Projects, Credentials, Teams.
  • Projects — git repository with playbooks. AWX automatically runs git pull before each execution or on a schedule.
  • Credentials — access storage (SSH keys, vault passwords, cloud credentials). Encrypted in the AWX database, not visible to users in the UI.
  • Job Templates — parameterized playbook execution: which playbook, on which inventory, with which credentials and variables.
  • Workflow Templates — sequence of Job Templates with branching logic: if deployment to staging succeeds → deploy to production, otherwise → Slack notification.
---
# Example workflow via awx CLI
awx workflow_job_templates create \
  --name "Deploy to Production" \
  --organization "Corp Engineering" \
  --schema '{
    "nodes": [
      {
        "job_type": "job",
        "job_template": "Deploy App Staging",
        "success_nodes": [{"job_template": "Smoke Tests Staging"}],
        "failure_nodes": [{"job_template": "Notify Failure"}]
      },
      {
        "job_type": "job",
        "job_template": "Smoke Tests Staging",
        "success_nodes": [{"job_template": "Deploy App Production"}]
      }
    ]
  }'
---

What's Included in the Work

  1. Install AWX/Tower into your Kubernetes cluster or a dedicated server.
  2. Migrate existing playbooks into the Projects/Job Templates structure.
  3. Configure RBAC — roles, teams, LDAP/AD integration.
  4. Create Workflow Templates for canary and blue-green deployments.
  5. Team training — 2-3 sessions on running and troubleshooting.
  6. Documentation — configuration schema, runbook, user instructions.
  7. Warranty — bug-free setup, one month of support.

Timeline and Cost

Timeline: from 2 days (basic installation) to 5 days (full cycle with workflows and LDAP). Cost is calculated individually. Time savings on automation — up to 80% on routine tasks. Our team’s experience: 5+ years of working with Ansible in production, over 30 automation projects. We guarantee SLA for support and free consultations after implementation.

Get a consultation: contact us, we will evaluate your project in 1 business day. Order turnkey AWX or Tower implementation.