Установка и настройка AWX (Web-интерфейс для работы с Ansible Playbook)

Оцените статью

На данный момент у нас используется GitLab для работы с Ansible Playbook. В целом все устраивает и деплой производится из пайплайн GitLab, но хотелось бы использовать более специализированный инструмент.

Анализ доступных решений показал, что наиболее подходящим и полноценным решением является AWX который как раз и представляет собой специализированный WEB-интерфейс для работы с Ansible PlayBook.

Установка AWX в Docker

Установка Docker в RedOS

Подготовка системы

# dnf update -y
# dnf install -y yum-utils device-mapper-persistent-data lvm2
# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Устанавливаем Docker

# dnf install -y docker-ce docker-ce-cli

Настраиваем автозапуск

# systemctl enable docker
# systemctl start docker

Проверяем статус

# systemctl status docker
# docker ps

Устанавливаем Docker Compose

# dnf install docker-compose.x86_64

Устанавливаем Ansible и Docker-py

# dnf install python3-pip.noarch
# dnf install ansible
# pip install docker-py

Устанавливаем git и клонируем репозиторий AWX

# dnf install -y git
# git clone https://github.com/ansible/awx.git
# cd ./awx/
# git checkout 24.3.1

Установка AWX

Редактируем Inventory файл

# mcedit tools/docker-compose/inventory

Задаем параметры базы данных.

pg_password="Qe32f7932t"
broadcast_websocket_secret="Qe32f7932t"
secret_key="Qe32f7932t"

Собираем образ системы

# make docker-compose-build

Проверяем, что образ собран корректно

# docker image list
REPOSITORY                  TAG       IMAGE ID       CREATED        SIZE
<none>                      <none>    b18c3d934cf0   10 hours ago   2.38GB
ghcr.io/ansible/awx_devel   devel     1b58e9c4bce4   10 hours ago   2.38GB

Запускаем сборку и загрузку прочих компонентов системы

# make docker-compose

В процессе запуска будет создано окружение и к базе данных применены миграции. Обратите внимание, что суперпользователь администратор создается автоматически со случайным паролем который выводится в консоль после применения миграций.

tools_awx_1       | Superuser created successfully.
tools_awx_1       | Admin password: xxxxPASSWORDxxxx

Если сейчас попробовать подключиться к web-интерфейсу по адресу https://10.88.14.115:8043 то получим ошибку, что web-интерфейс на собран.

Приступаем к сборке интерфейса.

Сборка WEB-интерфейса AWX

Останавливаем текущий docker-compose комбинацией ctrl+c и запускаем docker-образы фоновым процессом.

# make docker-compose COMPOSE_UP_OPTS=-d

Для сборки нам понадобится NodeJS и установим его командой.

# dnf install nodejs

Запускаем сборку WEB-интерфейса командой.

# make ui-next

Удаляем старый образ и все последовательно пересобираем.

Дополнительно

Задаем политику перезапуска контейнеров (для автозапуска после перезагрузки).

# docker update --restart unless-stopped tools_awx_1
# docker update --restart unless-stopped tools_postgres_1
# docker update --restart unless-stopped tools_redis_1

Если вы пропустили логин-пароль администратора на этапе создания, то можете создать супер-пользователя командой.

# docker exec -ti tools_awx_1 awx-manage createsuperuser

Если при сборке вы поучили ошибку.

DOCKER_BUILDKIT=1 docker build \
        --ssh default= \
        -f Dockerfile.dev \
        -t ghcr.io/ansible/awx_devel:devel \
        --build-arg BUILDKIT_INLINE_CACHE=1 \
        --cache-from=ghcr.io/ansible/awx_devel:devel .
[+] Building 0.0s (0/0)                                                                                                                                     docker:default
ERROR: invalid empty ssh agent socket: make sure SSH_AUTH_SOCK is set
make: *** [Makefile:569: docker-compose-build] Ошибка 1

В данном случае необходимо сгененировать сокет аутентификации и передать его в переменную окружения.

# ssh-agent -t 3h
SSH_AUTH_SOCK=/tmp/ssh-XXXXXXcN85Oh/agent.2073; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2074; export SSH_AGENT_PID;
echo Agent pid 2074;

Экспортируем переменную.

# export SSH_AUTH_SOCK="/tmp/ssh-XXXXXXcN85Oh/agent.2073"

Related Posts

Создание бесплатной виртуальной машины в облаке Cloud.ru

Cloud.ru Evolution — облачная платформа российской компании Cloud.ru, предназначенная для развёртывания и управления ИТ‑инфраструктурой в облаке. Ориентирована на бизнес (от малого до крупного), госсектор и разработчиков. Одной из особенностей Cloud.ru…

Выборочный обход блокировок при помощи Mikrotik+ServerSpace

Так как ситуация с блокировками web-ресурсов становится все хуже, причем и как со стороны РФ (я и без соцсетей проживу зарубежных), но блокировка уже давно и во всю идет со…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You Missed

Создание бесплатной виртуальной машины в облаке Cloud.ru

Создание бесплатной виртуальной машины в облаке Cloud.ru

Выборочный обход блокировок при помощи Mikrotik+ServerSpace

Выборочный обход блокировок при помощи Mikrotik+ServerSpace

Настройка доверия между Red OS IPA доменом и Microsoft Active Directory

Настройка доверия между Red OS IPA доменом и Microsoft Active Directory

Корпоративная инфраструктура на базе RedOS

Корпоративная инфраструктура на базе RedOS

Установка Docker и Docker Compose в RedOS 8

Установка Docker и Docker Compose в RedOS 8

Генерация ключа и сертификата для сайта с помощью удостоверяющего центра (УЦ RedOS)

Генерация ключа и сертификата для сайта с помощью удостоверяющего центра (УЦ RedOS)