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 проверьте контейнеры docker, чтобы получить список запущенных контейнеров:
$ docker ps
Ответ:
Как видите, скрипт 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 на Ubuntu 20.04 с помощью ansible-playbook с контейнерами Docker.