Найти в Дзене
Николай Калюжный

Установка Ansible+AWX на Ubuntu 22.04

Требования  установленная Ubuntu 22.04 minimal

Ставим необходимые компоненты

sudo apt install ufw open-vm-tools net-tools curl mc nano wget

Добавляем правила фаерволла
sudo ufw allow http #при необходимости
sudo ufw allow https #при необходимости
sudo ufw allow ssh
sudo ufw allow from 192.168.0.206  #ansible host или другой если необходим полный доступ к серверу и включаем фаервол
sudo ufw enable

Создаем пользователя для работы с ansible

adduser ansible
usermod -aG sudo ansible
su ansible

Установка Ansible
sudo apt install software-properties-common -y
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible -y
sudo apt install openssh-server -y
sudo systemctl enable ssh

nano /etc/hosts
192.168.0.201 wiki.kalyuzhnyy.ru
192.168.0.206 ansible.kalyuzhnyy.ru
192.168.0.215 microk8s.kalyuzhnyy.ru
192.168.0.219 testansible.kalyuzhnyy.ru

ssh-keygen # генерируем ключ и копируем его на управляемые хосты
ssh-copy-id ansible@192.168.0.201
ssh-copy-id ansible@192.168.0.206
ssh-copy-id ansible@192.168.0.215
ssh-copy-id ansible@192.168.0.219

Правим конфиг ansible

sudo nano /etc/ansible/hosts
[webservers]
192.168.0.201 ansible_user=ansible ansible_port=22
192.168.0.206 ansible_user=ansible ansible_port=22
192.168.0.215 ansible_user=ansible ansible_port=22

192.168.0.219 ansible_user=ansible ansible_port=22

Проверяем
ansible -m ping webservers

ansible all -m ping

-2

И видим что все работает.

Install Docker on Ubuntu 22.04 Step-by-Step
sudo apt update
sudo apt install ca-certificates curl gnupg -y

Add Docker official APT Repository
$ sudo install -m 0755 -d /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Install Docker on Ubuntu 22.04
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

$ sudo usermod -aG docker $USER
$ newgrp docker

docker version

-3

sudo systemctl status docker

-4

Docker Compose Installation on Ubuntu 22.04
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

docker-compose --version

-5

Установка Ansible AWX
git clone --depth 1 https://github.com/ansible/awx
cd awx
nano tools/docker-compose/inventory
================================================================================
Укажем пароль для базы данных PostgreSQL и необходимые секреты:

GNU nano 6.2                                        tools/docker-compose/inventory *                                               
localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python3"

[all:vars]

# AWX-Managed Database Settings
# If left blank, these will be generated upon install.
# Values are written out to tools/docker-compose/_sources/secrets/
pg_password="Qwerty123"
broadcast_websocket_secret="Qwerty123"
secret_key="Qwerty123"
================================================================================
Вы можете использовать внешнюю базу данных PostgreSQL. Для этого необходимо задать эти переменные: pg_host, pg_hostname и pg_username. Но я буду использовать базу данных из контейнера.

Далее необходимо собрать образ системы Ansible AWX:

sudo make docker-compose-build

-6

Дождитесь окончания процесса сборки Docker образов. На моем тестовом сервере этот процесс занял примерно 15 минут. В случае успешного завершения сборки у вас должен отобразиться соответствующий образ Docker в перечне всех образов:

docker images

-7

Теперь запустим сборку всех остальных компонентов системы. Передадим дополнительный аргумент COMPOSE_UP_OPTS=-d для того, чтобы запустить все контейнеры в фоне, а не в активном терминале:

make docker-compose COMPOSE_UP_OPTS=-d

Дождитесь окончания процесса сборки образов. На этот этап на моем тестовом сервере ушло примерно минута.

Теперь нужно подготовить UI:

docker exec tools_awx_1 make clean-ui ui-devel

Дождитесь окончания процесса сборки UI. Опять же на моем тестовом сервере мне понадобилось около 5 минут.

Один из заключительных шагов – это создание пользователя:

docker exec -ti tools_awx_1 awx-manage createsuperuser

Оставим стандартное имя – awx и укажем пароль пользователя.

Важный шаг – настроить политику перезапуска контейнеров. В противном случае после перезапуска docker хоста контейнеры не запустятся автоматически и вы не сможете получить доступ к Ansible AWX:

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 tools_awx_1 awx-manage create_preload_data

Установка Ansible AWX завершена. Теперь можно перейти к оценки результатов нашего с вами труда.
Веб интерфейс администрирования

Веб интерфейс администрирования Ansible AWX доступен по следующему адресу (только с поправкой на IP-адрес вашего сервера):

https://192.168.0.206:8043

Вот так выглядит страница с запросом учетных данных:

-8

Вводим учетные данные того пользователя, которого мы создали в процессе настройки продукта. После успешной аутентификации мы должны увидеть стартовую страницу панели администрирования Ansible AWX:

-9

Задача по установке Ansible+AWX выполнена