Как установить Ansible AWX с обратным прокси-сервером Nginx в Ubuntu 18.04 LTS
На этой странице
- Шаг 1. Установите Docker и Ansible
- Шаг 2. Установите дополнительные пакеты
- Шаг 3. Загрузите исходный код AWX и настройте
- Шаг 4. Установите Ansible AWX
- Шаг 5. Установите и настройте Nginx в качестве обратного прокси-сервера
- Шаг 6. Настройка брандмауэра UFW
- Шаг 7. Тестирование
- Справочник
AWX — это веб-приложение с открытым исходным кодом, которое предоставляет пользовательский интерфейс, REST API и механизм задач для Ansible. Это версия Ansible Tower с открытым исходным кодом. AWX позволяет вам управлять плейбуками Ansible, инвентаризацией и планировать выполнение заданий с помощью веб-интерфейса.
В этом руководстве мы собирались показать вам, как установить и настроить AWX на сервере Ubuntu 18.04. Мы собирались установить AWX с Nginx в качестве обратного прокси и построить безопасное соединение HTTPS.
Предпосылка
- Сервер Ubuntu 18.04
- Оперативная память +4 ГБ и 2 ядра
- Привилегии root
Что мы будем делать:
- Установите Docker и Ansible
- Установить дополнительные пакеты
- Загрузить и настроить исходный код Ansible AWX
- Установите Ansible AWX
- Установка и настройка Nginx в качестве обратного прокси-сервера
- Настройка брандмауэра UFW
- Тестирование
Шаг 1 — Установите Docker и Ansible
Во-первых, мы собираемся установить основные пакеты, необходимые для установки AWX, это Docker и сам Ansible. Перед установкой этих пакетов обновите репозиторий Ubuntu с помощью следующей команды.
sudo apt update
Теперь установите Docker и Ansible.
sudo apt install ansible -y
sudo apt install docker.io -y
После завершения установки проверьте docker и ansible, используя следующие команды.
docker version
ansible --version
Ниже приведен результат.
Шаг 2 — Установите дополнительные пакеты
Теперь собирались установить дополнительные пакеты для установки AWX. Мы установим пакет python-pip в систему, а затем установим docker-compose и docker-py из репозитория Python PyPI.
Установите python-pip с помощью приведенной ниже команды apt.
sudo apt install python-pip -y
После завершения установки установите пакеты docker-compose 1.9.0 и docker-py из репозитория PyPI, используя приведенные ниже команды pip.
pip install docker-compose==1.9.0
pip install docker-py
Далее нам нужно установить nodejs и npm на сервер.
Выполните следующую команду.
sudo apt install nodejs npm -y
После завершения обновите npm до последней версии.
npm install npm --global
И в результате все зависимости были установлены в систему. И были готовы к установке AWX.
Шаг 3. Загрузите исходный код AWX и настройте
На этом этапе мы загрузим исходный код AWX и настроим файл инвентаризации для установки AWX.
Загрузите исходный код AWX из репозитория git и перейдите в каталог установки awx.
git clone https://github.com/ansible/awx.git
cd awx/installer/
После этого сгенерируйте новый секретный ключ для awx с помощью команды openssl ниже.
openssl rand -hex 32
Скопируйте сгенерированный секретный ключ в свою заметку.
Теперь отредактируйте файл конфигурации инвентаря.
vim inventory
Измените postgres_data_dir на каталог /var/lib/pgdocker.
postgres_data_dir=/var/lib/pgdocker
Измените host_port на 8080.
host_port=8080
Раскомментируйте строку use_docker_compose и измените значение на true, потому что мы собирались управлять awx с помощью docker compose.
use_docker_compose=true
Теперь убедитесь, что docker_compose_dir находится в каталоге /var/lib/awx.
docker_compose_dir=/var/lib/awx
Измените учетные данные для pg_password, rabbitmq_password, rabbitmq_erlang_cookie, admin_user и admin_password на свои собственные учетные данные пароля.
...
pg_password=hakaseposgresawx
...
rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster
...
admin_user=hakase
admin_password=hakasepass
...
после этого измените секретный ключ конфигурации awx, используя сгенерированный ключ сверху.
secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33
Затем раскомментируйте project_data_dir и оставьте значение по умолчанию.
project_data_dir=/var/lib/awx/projects
Сохраните и закройте конфигурацию.
Ниже отредактированный файл инвентаря.
grep -v '^#' inventory
файл конфигурации инвентаря.
localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"
[all:vars]
dockerhub_base=ansible
awx_task_hostname=awx
awx_web_hostname=awxweb
postgres_data_dir=/var/lib/pgdocker
host_port=8080
use_docker_compose=true
docker_compose_dir=/var/lib/awx
pg_username=awx
pg_password=hakaseposgresawx
pg_database=awx
pg_port=5432
rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster
admin_user=hakase
admin_password=hakasepass
create_preload_data=True
secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33
project_data_dir=/var/lib/awx/projects
И в итоге были готовы к установке awx на следующем этапе.
Шаг 4 — Установите Ansible AWX
Установите awx с помощью следующей команды ansible-playbook.
ansible-playbook -i inventory install.yml
Playbook будет выполнять некоторые задачи, включая загрузку образов докеров и создание новых контейнеров postgresql, memcached, rabbitmq, веб-приложения awx и задачи awx.
И ниже результат.
Затем перейдите в каталог /var/lib/awx, и вы получите конфигурацию docker-compose.yml. Затем проверьте все доступные контейнеры Docker с помощью команды docker-compose.
cd /var/lib/awx
docker-compose ps
И вам будут показаны контейнеры awx, как показано ниже.
Кроме того, вы можете проверить журналы службы задач с помощью следующей команды.
docker-compose logs task
Шаг 5. Установите и настройте Nginx в качестве обратного прокси.
После установки awx мы установим и настроим Nginx в качестве обратного прокси-сервера для awx с портом 8080.
Установите Nginx с помощью следующей команды apt.
sudo apt install nginx -y
После завершения установки перейдите в каталог /etc/nginx/sites-available/ и создайте новую конфигурацию виртуального хоста с именем awx с помощью редактора vim.
cd /etc/nginx/sites-available/
vim awx
Теперь вставьте конфигурацию ниже.
server {
listen 80;
server_name awx.hakase-labs.io;
add_header Strict-Transport-Security max-age=2592000;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 ssl http2;
server_name awx.hakase-labs.io;
access_log /var/log/nginx/awx.access.log;
error_log /var/log/nginx/awx.error.log;
ssl on;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_session_timeout 5m;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://10.5.5.20:8080/;
}
}
Измените доменное имя и IP-адрес proxy_pass на свои собственные, затем сохраните и выйдите.
Теперь активируйте виртуальный хост awx и проверьте конфигурацию nginx.
ln -s /etc/nginx/sites-available/awx /etc/nginx/sites-enabled/
nginx -t
Убедитесь, что в конфигурации nginx нет ошибок, затем перезапустите службу nginx.
sudo systemctl restart nginx
В итоге установка и настройка Nginx в качестве обратного прокси для awx завершена.
Шаг 6. Настройте брандмауэр UFW.
Добавьте службы SSH, HTTP и HTTPS в конфигурацию брандмауэра UFW.
ufw allow ssh
ufw allow http
ufw allow https
Теперь запустите и включите службу брандмауэра ufw.
ufw enable
Введите y в yes, и брандмауэр ufw настроен.
Шаг 7 — Тестирование
Откройте веб-браузер и введите URL-адрес awx в адресной строке.
https://awx.hakase-labs.io
И вам будет показана страница входа в awx, как показано ниже.
Теперь введите пользователя hakase и пароль hakasepass, затем нажмите кнопку входа.
Теперь вы получаете панель администратора awx, как показано ниже.
И установка Ansible AWX с обратным прокси Nginx успешно завершена.