Поиск по сайту:

Как установить Ansible AWX с обратным прокси-сервером Nginx в Ubuntu 18.04 LTS


На этой странице

  1. Шаг 1. Установите Docker и Ansible
  2. Шаг 2. Установите дополнительные пакеты
  3. Шаг 3. Загрузите исходный код AWX и настройте
  4. Шаг 4. Установите Ansible AWX
  5. Шаг 5. Установите и настройте Nginx в качестве обратного прокси-сервера
  6. Шаг 6. Настройка брандмауэра UFW
  7. Шаг 7. Тестирование
  8. Справочник

AWX — это веб-приложение с открытым исходным кодом, которое предоставляет пользовательский интерфейс, REST API и механизм задач для Ansible. Это версия Ansible Tower с открытым исходным кодом. AWX позволяет вам управлять плейбуками Ansible, инвентаризацией и планировать выполнение заданий с помощью веб-интерфейса.

В этом руководстве мы собирались показать вам, как установить и настроить AWX на сервере Ubuntu 18.04. Мы собирались установить AWX с Nginx в качестве обратного прокси и построить безопасное соединение HTTPS.

Предпосылка

  • Сервер Ubuntu 18.04
  • Оперативная память +4 ГБ и 2 ядра
  • Привилегии root

Что мы будем делать:

  1. Установите Docker и Ansible
  2. Установить дополнительные пакеты
  3. Загрузить и настроить исходный код Ansible AWX
  4. Установите Ansible AWX
  5. Установка и настройка Nginx в качестве обратного прокси-сервера
  6. Настройка брандмауэра UFW
  7. Тестирование

Шаг 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 успешно завершена.

Ссылка