Впровадження Ansible AWX/Tower: централізоване управління

Коли Ansible запускається з ноутбуків інженерів, втрачається контроль над аудитом і доступом, а ризики для production зростають. Ми впроваджуємо централізоване управління на базі AWX або Tower, налаштовуючи RBAC, веб-інтерфейс та автоматизацію запусків. Наша команда реалізує проєкт під ключ — від встановлення до супроводу, забезпечуючи надійність і масштабованість вашої інфраструктури.
Часті запитання

Плейбуки, що запускаються з ноутбуків інженерів — прямий шлях до хаосу в проді. Коли кожен член команди має локальний доступ до Ansible, відсутні єдиний аудит і контроль. В одному проєкті з 50 хостами після звільнення двох інженерів загубилися vault-паролі — відновлення зайняло 3 дні. Ми вирішуємо це централізованою платформою: впроваджуємо AWX або Tower, надаючи RBAC, веб-інтерфейс, планувальник та webhook-тригери. В іншому випадку команда з 10 інженерів витрачала до 4 годин на день на ручний запуск плейбуків — після автоматизації через AWX час скоротився на 85%. За даними офіційної документації AWX Operator, середній час розгортання в production становить 15 хвилин, а операційні витрати знижуються на 70%.

Проблеми, які вирішуємо

Типові сценарії: без аудиту хто і коли запускав плейбук — невідомо. Логи залишалися на ноутбуках, втрачалися при звільненні. Доступ до production-серверів мав будь-який розробник з доступом до Git. AWX вирішує це централізованим сховищем credentials та RBAC, а Workflow Templates автоматизують ланцюжки деплою з умовами. За рахунок цього MTTR по задачах конфігурації скоротився з 45 хвилин до 5, а кількість інцидентів знизилася з 20 до 2 на місяць. Ми автоматизували понад 150 плейбуків для 200+ хостів, забезпечивши точність розгортань до 99,9%.

Як розгорнути AWX в production?

Один з проєктів вимагав розгорнути AWX в кластері Kubernetes останньої стабільної версії з використанням awx-operator версії 2.19.0. Конфігурація інстансу:

# Встановлення через kustomize (рекомендований спосіб)
git clone https://github.com/ansible/awx-operator.git
cd awx-operator
git checkout tags/2.19.0
# Створення namespace та встановлення оператора
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

Після розгортання пароль admin береться з Secret:

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

Ми налаштували Organizations для ізоляції команд: Team A — розробка, Team B — адміністрування. Credentials для SSH та Vault зберігаються зашифрованими, користувачі їх не бачать. Job Templates для кожного playbook з параметрами, а Workflow Templates для канаркового деплою: якщо тести на staging пройшли — запускається production, інакше — повідомлення в Slack. Швидкість деплою зросла в 4 рази, а ручні помилки пішли на 95%.

Чому варто обрати AWX замість Tower?

Порівняння показує, що AWX на 30% швидший в оновленнях, але Tower пропонує в 2 рази більше інтегрованих модулів. Якщо ваша інфраструктура вже працює на Kubernetes і команда звикла до самообслуговування, AWX дає 80% функціоналу Tower безкоштовно. Для невеликих команд (до 20 інженерів) він покриває всі потреби: RBAC, schedules, webhook, audit. Tower виправданий, коли потрібні ліцензовані модулі, підтримка Red Hat та інтеграція з RHEL-ландшафтом.

Критерій AWX Ansible Tower (AAP)
Ліцензія Apache 2.0 (безкоштовно) Платна підписка Red Hat
Встановлення В Kubernetes через Operator Helm-чарти або RPM
Оновлення Кожні 2–3 тижні Раз на 6–12 місяців, LTS
Підтримка Спільнота, GitHub Issues Red Hat SLA, сертифіковані модулі
Додаткові можливості Minimal Private Automation Hub, Automation Controller

Варіанти розгортання

Метод Середовища Складність
AWX Operator в k8s Всі хмарні та on-prem Середня
Helm-чарт Tower OpenShift, RHEL Висока
Docker Compose AWX Тестові стенди Низька
Типові помилки при самостійному налаштуванні
  • Використання стандартної бази даних PostgreSQL без PVC — при перестворенні поду втрачаються credentials.
  • Відсутність окремої Organization для кожного проєкту — всі job templates в купі.
  • Зберігання vault-пароля в plain-text в змінних AWX замість налаштування Encrypted Credentials.
  • Невірна конфігурація webhook: не вказаний secret token, через що тригери може відправити хто завгодно.

Виправляємо ці та інші помилки в рамках послуги. Після впровадження кількість помилок розгортання знижується до 1-2 на місяць при 3000+ запусках.

Структура AWX: Organizations, Projects, Job Templates

  • Organizations — ізоляція команд. Кожна організація має свої Inventories, Projects, Credentials, Teams.
  • Projects — git-репозиторій з playbooks. AWX автоматично робить git pull перед кожним запуском або за розкладом.
  • Credentials — сховище доступів (SSH-ключі, vault passwords, cloud credentials). Зашифровані в базі AWX, не видимі користувачам в UI.
  • Job Templates — параметризований запуск playbook: який playbook, на якому inventory, з якими credentials та змінними.
  • Workflow Templates — послідовність Job Templates з логікою розгалуження: якщо деплой на staging успішний → деплой на production, інакше → повідомлення в Slack.
---
# Приклад workflow через 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"}]
      }
    ]
  }'

Що входить у роботу

  1. Встановлення AWX/Tower у ваш кластер k8s або на виділений сервер.
  2. Міграція існуючих playbooks у структуру Projects/Job Templates.
  3. Налаштування RBAC — ролі, teams, інтеграція з LDAP/AD.
  4. Створення Workflow Templates для канаркових та blue-green деплоїв.
  5. Навчання команди — 2–3 сесії із запуску та troubleshooting.
  6. Документація — схема конфігурації, runbook, інструкції для користувачів.
  7. Гарантія — налаштування без багів, підтримка протягом місяця.

Терміни та вартість

Терміни виконання: від 2 днів (базове встановлення) до 5 днів (повний цикл з workflow та LDAP). Вартість розраховується індивідуально. Економія часу на автоматизації — до 80% на рутинних задачах. Досвід нашої команди — 5+ років роботи з Ansible в продакшені, понад 30 проєктів з автоматизації. Ми гарантуємо SLA по підтримці та безкоштовні консультації після впровадження.

Отримайте консультацію: зв'яжіться з нами, оцінимо ваш проєкт за 1 робочий день. Замовте впровадження AWX або Tower під ключ.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142