Гид по технологиям

Установка Ansible AWX из RPM на CentOS 7

4 min read DevOps Обновлено 27 Nov 2025
Ansible AWX из RPM на CentOS 7
Ansible AWX из RPM на CentOS 7

Важно: в примерах используется SELinux в режиме permissive и дефолтный пароль admin/password — замените их в продакшне.

Ключевые варианты запроса

  • установка Ansible AWX
  • AWX из rpm на CentOS 7
  • развертывание AWX nginx

О чём эта инструкция

Пошагово описано развертывание AWX (open‑source версия Ansible Tower) на одном сервере CentOS 7 с примерами команд, настройкой PostgreSQL, RabbitMQ, memcached и nginx, а также организацией passwordless SSH для управления хостами.

Топология примера

В примере используется три сервера с минимальной установкой CentOS 7 и SELinux в permissive:

  • 192.168.1.25 — AWX Server
  • 192.168.1.21 — client1
  • 192.168.1.22 — client2

Минимальные требования к AWX-серверу

  • Память: не менее 4 ГБ
  • CPU: минимум 2 ядра
  • Диск: не менее 20 ГБ
  • Платформа: Docker, OpenShift или Kubernetes (AWX RPM использует сервисы без контейнеров в этом рецепте)

Проверка SELinux

Проверьте состояние SELinux на сервере AWX:

[root@awx ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28
[root@awx ~]#

Примечание: permissive удобен для установки и отладки. В продакшне рекомендуется переводить SELinux в enforcing и корректировать boolean/контексты.

Добавление записей в /etc/hosts

Добавьте соответствия имён и IP в /etc/hosts на всех серверах:

[root@awx ~]# cat /etc/hosts
192.168.1.25    awx.sunil.cc awx
192.168.1.21    client1.sunil.cc client1
192.168.1.22    client2.sunil.cc client2
[root@awx ~]#

Правила фаервола

Включите firewalld и откройте HTTP/HTTPS:

[root@awx ~]# systemctl enable firewalld
[root@awx ~]# systemctl start firewalld
[root@awx ~]# firewall-cmd --add-service=http --permanent;firewall-cmd --add-service=https --permanent
success
success
[root@awx ~]# systemctl restart firewalld
[root@awx ~]#

Включение EPEL и установка зависимостей

Установка репозитория EPEL:

[root@awx ~]# yum install -y epel-release

AWX в данном рецепте требует PostgreSQL 9.6 — включим репозиторий PostgreSQL и установим сервер:

[root@awx ~]# yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
[root@awx ~]# yum install postgresql96-server -y

Установим остальные пакеты:

[root@awx ~]# yum install -y rabbitmq-server wget memcached nginx ansible

Установка Ansible AWX из RPM

Добавьте репозиторий AWX (пример использует copr):

[root@awx ~]# wget -O /etc/yum.repos.d/awx-rpm.repo https://copr.fedorainfracloud.org/coprs/mrmeee/awx/repo/epel-7/mrmeee-awx-epel-7.repo

Установите пакет AWX:

[root@awx ~]# yum install -y awx

Инициализация базы данных PostgreSQL

[root@awx ~]# /usr/pgsql-9.6/bin/postgresql96-setup initdb
Initializing database ... OK
[root@awx ~]#

Запуск и включение служб

Запустите RabbitMQ, PostgreSQL и Memcached:

[root@awx ~]# systemctl start rabbitmq-server
[root@awx ~]# systemctl enable rabbitmq-server
[root@awx ~]# systemctl enable postgresql-9.6
[root@awx ~]# systemctl start postgresql-9.6
[root@awx ~]# systemctl enable memcached
[root@awx ~]# systemctl start memcached

Создание роли и базы для AWX

Создайте пользователя PostgreSQL и базу данных (в примере вывод с предупреждением о правах каталога /root — его можно игнорировать):

[root@awx ~]# sudo -u postgres createuser -S awx
could not change directory to "/root": Permission denied
[root@awx ~]# sudo -u postgres createdb -O awx awx
could not change directory to "/root": Permission denied
[root@awx ~]#

Импортируем модель Django в базу (миграции):

[root@awx ~]# sudo -u awx /opt/awx/bin/awx-manage migrate

Инициализация конфигурации AWX и создание суперпользователя

Создаём суперпользователя и предзагружаем демо-данные:

[root@awx ~]# echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'root@localhost', 'password')" | sudo -u awx /opt/awx/bin/awx-manage shell
[root@awx ~]# sudo -u awx /opt/awx/bin/awx-manage create_preload_data
Default organization added.
Demo Credential, Inventory, and Job Template added.

[root@awx ~]# sudo -u awx /opt/awx/bin/awx-manage provision_instance --hostname=$(hostname)
Successfully registered instance awx.sunil.cc
(changed: True)
[root@awx ~]# sudo -u awx /opt/awx/bin/awx-manage register_queue --queuename=tower --hostnames=$(hostname)
Creating instance group tower
Added instance awx.sunil.cc to tower
(changed: True)
[root@awx ~]#

Важно: сразу после установки смените пароль admin и отключите демонстрационные учётные записи.

Настройка nginx

Сделайте бэкап существующего конфига и замените nginx.conf на предложенный в репо (пример автора):

[root@awx ~]# cd /etc/nginx/
[root@awx nginx]# pwd
/etc/nginx
[root@awx nginx]# cp nginx.conf nginx.conf.bkp
[root@awx nginx]# wget -O /etc/nginx/nginx.conf https://raw.githubusercontent.com/sunilsankar/awx-build/master/nginx.conf

Запустите и включите nginx:

[root@awx ~]# systemctl start nginx
[root@awx ~]# systemctl enable nginx

Запуск служб AWX

Запустите сервисы AWX и включите автозапуск:

[root@awx ~]# systemctl start awx-cbreceiver
[root@awx ~]# systemctl start awx-celery-beat
[root@awx ~]# systemctl start awx-celery-worker
[root@awx ~]# systemctl start awx-channels-worker
[root@awx ~]# systemctl start awx-daphne
[root@awx ~]# systemctl start awx-web

[root@awx ~]# systemctl enable awx-cbreceiver
[root@awx ~]# systemctl enable awx-celery-beat
[root@awx ~]# systemctl enable awx-celery-worker
[root@awx ~]# systemctl enable awx-channels-worker
[root@awx ~]# systemctl enable awx-daphne
[root@awx ~]# systemctl enable awx-web
[root@awx ~]#

Настройка безпарольного входа (passwordless SSH)

Создайте пользователя ansible на всех трёх машинах:

[root@awx ~]# useradd ansible
[root@client1 ~]# useradd ansible
[root@client2 ~]# useradd ansible

Сгенерируйте SSH-ключ на AWX и скопируйте public key в ~/.ssh/authorized_keys на всех клиентах. Пример генерации ключа:

[ansible@awx ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ansible/.ssh/id_rsa):
Created directory '/home/ansible/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ansible/.ssh/id_rsa.
Your public key has been saved in /home/ansible/.ssh/id_rsa.pub.
...
[ansible@awx ~]$

Добавьте строку в sudoers (visudo):

ansible ALL=(ALL) NOPASSWD: ALL

Скопируйте содержимое id_rsa.pub в ~/.ssh/authorized_keys на client1 и client2 и установите права:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Проверка подключения с AWX к клиентам:

[ansible@awx ~]$ ssh client1
Last login: Sun Mar 11 13:14:06 2018 from 192.168.1.25
[ansible@client1 ~]$ exit
logout
Connection to client1 closed.
[ansible@awx ~]$ ssh client2
Last login: Sun Mar 11 12:50:14 2018 from 192.168.1.25
[ansible@awx ~]$

Вход в веб-интерфейс AWX

Страница входа Ansible AWX (форма логина)

Данные для входа по умолчанию в примере:

Username: admin
Password: password

После входа вы увидите дашборд:

Панель управления Ansible AWX (дашборд)

Когда этот подход не подходит

  • Если вы хотите полностью контейнеризованное, поддерживаемое окружение — рассмотрите AWX Operator для Kubernetes/OpenShift.
  • Для крупной продакшн‑инсталляции с высокой доступностью RPM‑релиз может потребовать доработки по бэкапам, HA PostgreSQL и кластеризации очередей.

Альтернативные подходы

  • Развёртывание AWX через Docker Compose (ранее часто использовалось в руководствах).
  • AWX Operator — предпочтителен для Kubernetes/OpenShift.
  • Использование готовых образов/контейнеров от сообщества при ограниченных требованиях к поддержке.

Безопасность и жёсткие настройки (рекомендации)

  • Смените пароль администратора сразу после установки.
  • Настройте HTTPS с валидным сертификатом (Let’s Encrypt или ваш CA).
  • Отключите демонстрационные учётные записи и предзагруженные креденшалы.
  • Ограничьте доступ по IP к панели AWX и к базе данных.
  • Переведите SELinux в enforcing и откорректируйте контексты/boolean при необходимости.

Важно: не храните в AWX открытые ключи/пароли без политики ротации и шифрования.

Быстрое устранение типичных проблем

  • Службы AWX не стартуют: проверьте журналы systemd для каждого сервиса (journalctl -u awx-web).
  • Ошибки миграций: убедитесь, что PostgreSQL запущен и параметры подключения верны.
  • SSH‑подключение не проходит: проверьте права на ~/.ssh и формат authorized_keys, убедитесь, что на хостах включён sshd и пользователь ansible существует.

Чеклист ролей (администратор / оператор)

  • Администратор:

    • Подготовить сервер (файрвол, SELinux, /etc/hosts).
    • Установить RPM и зависимые сервисы.
    • Настроить nginx и HTTPS.
    • Обеспечить бэкапы БД и конфигов.
  • Оператор/DevOps:

    • Создать и проверить ключи SSH для inventory.
    • Добавить креденшалы и инвентории в AWX.
    • Настроить шаблоны заданий и политики безопасности.

Однострочная глоссарий

  • AWX — открытая реализация веб-интерфейса и API для Ansible (аналог Ansible Tower).
  • RPM — пакетная система для дистрибутивов RHEL/CentOS.
  • SELinux — механизм мандатного контроля доступа в Linux.

Ссылки и исходники

Краткое финальное резюме

AWX из RPM на CentOS 7 позволяет быстро получить веб‑интерфейс для управления Ansible без контейнерной платформы. Этот рецепт покрывает установку зависимостей, инициализацию базы, запуск сервисов, настройку nginx и организацию passwordless SSH для инвентории. Для продакшна дополнительно потребуется HTTPS, безопасность учётных записей и резервное копирование базы.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро