Настройка AWX/Ansible Tower для централизованного управления Ansible

Когда каждый инженер запускает плейбуки с личного ноутбука, версии расходятся, секреты попадают в чат, а аудит теряется. Мы настраиваем AWX или Ansible Tower, чтобы централизовать управление Ansible и вернуть контроль над инфраструктурой. Наша команда реализует проект под ключ — от развёртывания до настройки RBAC и вебхуков, с последующей поддержкой.
Часто задаваемые вопросы

Команда росла: пять инженеров, каждый запускает ansible-playbook с личного ноутбука. Версии коллекций и Python расходились, vault-пароли хранились в общем чате, а после срочного деплоя никто не мог вспомнить, кто выполнял какой плейбук. Очередной релиз упал из-за несовместимости версии Ansible. Без единой платформы каждый новый инженер тратит недели на настройку окружения. Ошибки вручную написанных инвентарей приводят к простоям. Средний MTTR (время восстановления) увеличивается втрое. Мы за 5 лет автоматизировали больше 10 проектов и знаем, как это исправить. Централизация на AWX или Ansible Tower — единственный способ вернуть контроль над инфраструктурой, обеспечить аудит каждого запуска и безопасное хранение credentials в зашифрованной базе данных (AES-256). Свяжитесь с нами — оценим ваш проект за 1 день.

Проблемы локального запуска

Локальный ansible-playbook — это:

  • Отсутствие единого лога: каждый запуск теряется в терминале.
  • Разные версии коллекций и Python — ошибки module not found на проде.
  • Секреты в репозитории или на флешках — нарушение compliance.
  • Невозможность дать доступ стажёру без риска сломать прод.

По данным опросов, 70% команд сталкиваются с проблемами версионирования, а 50% — с утечкой секретов. Эти проблемы решает единая платформа — AWX или Ansible Tower. Они дают централизованное хранение credentials, RBAC, расписания, вебхуки для CI/CD и полный аудит.

Преимущества AWX перед локальным запуском

Возьмём типовой сценарий: выкатка новой версии приложения на staging. Без AWX разработчик копирует плейбук, правит инвентарь, запускает руками — 15 минут на одну операцию, риск опечатки. С AWX: один клик в веб-интерфейсе или вызов API — 30 секунд. Экономия времени — до 30 раз. Снижение операционных расходов за счёт автоматизации — до 40%. Источник: внутренняя статистика проектов

Критерий Локальный запуск AWX
Время на один деплой 15 мин 30 сек
Аудит действий Нет Полный лог stdout
Управление секретами Vault-файлы вручную Credentials в БД (AES-256)
RBAC Нет Роли на объекты
Интеграция с CI/CD Только через SSH Webhook + API

Как развернуть AWX в Kubernetes?

Официальный способ — AWX Operator. Установка через Helm не поддерживается, только kubectl apply:

kubectl apply -k github.com/ansible/awx-operator/config/default?ref=2.19.1 

Затем создаём ресурс AWX:

kubectl apply -f - <<EOF
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx
  namespace: awx
spec:
  service_type: ClusterIP
  ingress_type: ingress
  hostname: awx.mycompany.com
  postgres_storage_class: fast-ssd
  postgres_storage_requirements:
    requests:
      storage: 20Gi
  projects_persistence: true
  projects_storage_class: fast-ssd
  projects_storage_size: 10Gi
  extra_settings:
    - setting: DEFAULT_EXECUTION_QUEUE_NAME
      value: '"default"'
EOF

Оператор сам развернёт PostgreSQL, Redis, AWX-web и AWX-task поды. Через 5–10 минут kubectl get pods -n awx покажет все в Running.

Пошаговая инструкция:

  1. Установите AWX Operator из репозитория Red Hat.
  2. Создайте ресурс AWX, указав параметры хранения и Ingress.
  3. Настройте HTTPS через cert-manager или собственные сертификаты.
  4. Импортируйте Git-проекты с плейбуками.
  5. Настройте пользователей и роли через RBAC.

Организация инвентаря в AWX

Проект в AWX — это Git-репозиторий с плейбуками. Типичная структура:

[email protected]:devops/ansible-playbooks.git
├── inventories/
│   ├── staging/
│   │   ├── hosts.yml
│   │   └── group_vars/
│   └── production/
│       ├── hosts.yml
│       └── group_vars/
├── playbooks/
│   ├── deploy-app.yml
│   ├── patching.yml
│   └── db-backup.yml
└── collections/
    └── requirements.yml

Инвентарь может быть:

  • Статическим — из YAML-файла в проекте.
  • Динамическим — скрипт или плагин для облаков (AWS EC2, GCP, Azure, Yandex Cloud).
  • Smart Inventory — объединение нескольких инвентарей с фильтрами.
Пример статического инвентаря
# inventories/staging/hosts.yml
all:
  children:
    web:
      hosts:
        web-staging-01.mycompany.com:
        web-staging-02.mycompany.com:
      vars:
        nginx_worker_processes: 2
    db:
      hosts:
        db-staging-01.mycompany.com:
      vars:
        postgres_max_connections: 100

Job Templates и Credentials

Job Template связывает плейбук, инвентарь и credentials. Credentials хранятся зашифрованными в AWX. Survey позволяет операторам вводить параметры без доступа к коду: поле «Версия», нажал Launch — плейбук выполнился.

Как AWX интегрируется с CI/CD?

AWX принимает входящие webhooks от GitLab/GitHub. GitOps-подход: после merge в main пайплайн автоматически запускает Job Template. Пример триггера на релизный тег:

# .gitlab-ci.yml
deploy:staging:
  stage: deploy
  script:
    - |
      curl -X POST \
        -H "Authorization: Bearer $AWX_TOKEN" \
        -H "Content-Type: application/json" \
        -d '{"extra_vars": {"app_version": "'$CI_COMMIT_TAG'"}}' \
        https://awx.mycompany.com/api/v2/job_templates/42/launch/
  only:
    - tags

Вся история запусков хранится: кто, когда, какой плейбук, вывод.

Настройка RBAC в AWX

Создайте команды и роли: admin, auditor, executor. Разрешите доступ только к нужным шаблонам. Никаких лишних привилегий.

Что входит в работу и сроки

При заказе настройки AWX мы:

  • Разворачиваем AWX в вашем Kubernetes (или на bare metal)
  • Настраиваем интеграцию с Git, CI/CD, облаками
  • Создаём инвентари, Job Templates, credentials
  • Настраиваем RBAC и уведомления
  • Обучаем команду работе с AWX
  • Предоставляем документацию и runbook
Этап Длительность Результат
Анализ инфраструктуры 0.5 дня План миграции
Развертывание AWX 1-2 дня Работающий экземпляр
Настройка проектов и инвентарей 0.5 дня Подключенные репозитории
Настройка RBAC и CI/CD 1 день Интеграция с пайплайнами
Обучение команды 0.5 дня Документация и демо

Сроки: от 2 до 5 дней в зависимости от объёма. Стоимость рассчитывается индивидуально. Свяжитесь с нами для оценки вашей инфраструктуры. Закажите настройку AWX и получите централизованное управление.

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

Последние работы

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