Как установить Ansible AWX 17.1.0 на Ubuntu 20.04

AWX — это проект сообщества с открытым исходным кодом, спонсируемый компанией Red Hat. Он служит средой разработки для Ansible. Так же AWX имеет частые релизы и новые разработки.

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

В этой инструкции мы покажем процесс установки Ansible AWX на Ubuntu 20.04.

Требования для установки Ansible AWX 17.1.0 на Ubuntu 20.04

  • root-доступ или пользователь с привилегиями sudo для SSH-соединения.
  • Ubuntu 20.04 или 18.04
  • Минимум 4 ГБ оперативной памяти
  • Минимум 2 vcpu (vcpu это это виртуальный процессор, содержащий одно ядро и занимающий один сокет.)
  • Минимум 20 ГБ свободного места на диске SSD/HDD

Для успешного запуска и запуска Ansible AWX также необходимо будет установить:

  • Ansible
  • Docker and Docker compose
  • Node and NPM

1. Установка Ansible на Ubuntu 20.04

Первое что потребуется это обновить систему

$ sudo apt update

Чтоб выполнить установку Ansible, выполните следующую команду:

$ sudo apt install ansible -y

Для проверки версии установленного Ansible выполните команду:

$ ansible --version

Ответ:

ansible 2.9.6
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/linoxide/.ansible/plugins/modules',   '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]

Основной файл конфигурации хранится в файле /etc/ansible/hosts.

2. Установка Docker и Docker Compose

Для успешной установки и настройки Docker посмотрите статью  Как установить Docker Compose на Ubuntu 20.04

После установки Docker проверьте его версию:

$ docker version

Ответ в терминале:

Client: Docker Engine - Community
Version: 20.10.6
API version: 1.41
Go version: go1.13.15
Git commit: 370c289
Built: Fri Apr 9 22:47:17 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.6
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: 8728dd2
Built: Fri Apr 9 22:45:28 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.4
GitCommit: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
runc:
Version: 1.0.0-rc93
GitCommit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
docker-init:
Version: 0.19.0
GitCommit: de40ad0

После установки Docker Compose проверьте версию:

$ docker-compose version

Ответ:

docker-compose version 1.29.2, build 5becea4c docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019

3. Установите Node.js и NPM

Далее, требуется установить Node.js

$ sudo apt install -y nodejs npm

а также Установить NPM

$ sudo npm install npm --global

4. Установка Ansible AWX в Ubuntu 20.04

После того, как мы сделали подготовку к установке Ansible AWX в Ubuntu 20.04, пришло время установить Ansible.

Установите модуль docker-py python со следующей командой.

$ sudo apt install python3-pip git pwgen vim

далее введите команду

$ sudo pip3 install requests==2.22.0

Кроме того, нам понадобится модуль docker-compose для python, который соответствует вашей установленной версии Docker Compose.

$ docker-compose version

Ответ:

docker-compose version 1.29.2, build 5becea4c docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019

Проверьте версию docker-compose (моя версия 1.29.2). Далее установите модули с помощью следующей команды.

$ sudo pip3 install docker-compose==1.29.2

После установки pi-модулей мы собираемся загрузить последний zip-файл AWX из GitHub со следующей командой.

$ wget https://github.com/ansible/awx/archive/17.1.0.zip

Распакуйте загруженный архив этой командой:

$ unzip 17.1.0.zip

И измените каталог на awx-17.1.0/installer/

$ cd awx-17.1.0/installer/

Сгенерируйте секретный ключ для AWX с помощью следующей команды:

$ pwgen -N 1 -s 30

Ответ:

6YJ0TM4MsmpKIrNCqEVA1i4TAa3zbG

Затем найдите файл инвентаризации и откройте его с помощью любимого редактора:

$ sudo nano inventory

Попробуйте сохранить следующие настройки:

ПРИМЕЧАНИЕ: замените секретный ключ тем, который мы только что сгенерировали:

dockerhub_base=ansible
awx_task_hostname=awx
awx_web_hostname=awxweb
postgres_data_dir=/tmp/pgdocker
host_port=80
host_port_ssl=443
docker_compose_dir=/tmp/awxcompose
pg_username=awx
pg_password=awxpass
pg_database=awx
pg_port=5432
admin_user=admin
admin_password=password
create_preload_data=True
secret_key=6YJ0TM4MsmpKIrNCqEVA1i4TAa3zbG

После сопоставления этой конфигурации с вашей пришло время выполнить playbook. Сделать это можно следующей командой:

$ ansible-playbook -i inventory install.yml

install.yml – это имя файла playbook

параметр -i говорит ansible использовать инвентарный файл

Установочный ответ:

ansible-playbook install.yml
ansible-playbook install.yml

Убедитесь, что все идет хорошо, без неудачных выполнений заданий.

После установки ansible-playbook проверьте контейнеры docker, чтобы получить список запущенных контейнеров:

$ docker ps

Ответ:

список контейнеров docker
список контейнеров docker

Как видите, скрипт ansible создает и запускает 4 docker-контейнера:

  • awx_task
  • awx_web
  • awx_redis
  • awx_postgres

Для нас важнее всего awx_web, который работает на порту 80.

Вы можете получить доступ к Ansible AWX Web-UI через hostip или hostname на порту 80.

Страница входа Ansible AWX
Страница входа Ansible AWX

Войдите в систему с учетными данными, которые ранее были определены в файле инвентаризации.

панель Ansible AWX
панель Ansible AWX

После входа в систему вы увидите главную панель мониторинга. Оттуда вы можете начать управлять Ansible AWX и насладится панелью мониторинга.

Заключение

В этой инструкции мы показали, как установить Ansible AWX на Ubuntu 20.04 с помощью ansible-playbook с контейнерами Docker.

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

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