Требования установленная 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
И видим что все работает.
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
sudo systemctl status docker
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
Установка 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
Дождитесь окончания процесса сборки Docker образов. На моем тестовом сервере этот процесс занял примерно 15 минут. В случае успешного завершения сборки у вас должен отобразиться соответствующий образ Docker в перечне всех образов:
docker images
Теперь запустим сборку всех остальных компонентов системы. Передадим дополнительный аргумент 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
Вот так выглядит страница с запросом учетных данных:
Вводим учетные данные того пользователя, которого мы создали в процессе настройки продукта. После успешной аутентификации мы должны увидеть стартовую страницу панели администрирования Ansible AWX:
Задача по установке Ansible+AWX выполнена