Развертывание веб-сервера NGINX#
Использование коллекции astra.nginx
из реестра Automation Hub позволяет автоматизировать процесс установки и настройки веб-сервера NGINX на необходимом количестве узлов.
Описание сценария#
Процесс установки и настройки веб-сервера NGINX состоит из следующих этапов:
Создание стенда.
В качестве стенда рекомендуется использовать управляемые узлы, обладающие следующими характеристиками:
Характеристика
Значение
Кол-во ядер CPU
≥ 2
Кол-во RAM, ГБ
≥ 2
Размер хранилища, ГБ
≥ 20
ОС
Astra Linux Special Edition 1.8.1uu2
Для подключения к стенду используется протокол SSH.
Если у вас нет подходящего стенда, вы можете создать его с помощью Vagrant, используя приложенный
Vagrantfile
.Подготовка проекта Ansible.
Проект включает в себя следующие файлы:
ansible.cfg
– настройки Ansible;inventory.ini
– инвентарь;playbooks/nginx.yml
– playbook, содержащий сценарий настройки управляемых узлов.
В демонстрационных целях для NGINX задаются следующие настройки:
worker_connections
:2048
;keepalive_timeout
:30
.
Запуск playbook.
Проверка работоспособности развернутой инфраструктуры.
Подготовка к работе#
Подготовьте окружение к управлению задачами автоматизации:
Настройте управляемые узлы согласно инструкций:
Настройте Private Automation Hub на синхронизацию с Automation Hub.
Загрузите в Private Automation Hub образы среды исполнения
aa-1.2/aa-full-ee
.Изучите описание коллекции
astra.nginx
.Подготовьте каталог для хранения файлов проекта.
Если для управления задачами автоматизации используется Automation Controller, выполните следующие действия:
В одном из сервисов хранения репозиториев Git создайте пустой репозиторий для проекта.
Клонируйте этот репозиторий на локальный компьютер.
Если для управления задачами автоматизации используется Ansible Navigator, создайте в любом удобном месте пустой каталог, например:
mkdir ~/ansible-nginx/
Подготовка проекта Ansible#
Подготовьте ресурсы, необходимые для использования Ansible.
Создайте файл
ansible.cfg
со следующим содержимым:ansible.cfg
#[defaults] host_key_checking = false inventory = inventory.ini
Создайте файл инвентаря
inventory.ini
, например:inventory.ini
#[all] node1.example.com ansible_host=192.168.56.11 ansible_user=vagrant
В этом примере показаны настройки подключения к одному управляемому узлу.
Создайте каталог
playbooks/
, а в нем – файл сценарияnginx.yml
:playbooks/nginx.yml
#--- - name: Install and configure NGINX server hosts: all become: true roles: - role: astra.nginx.nginx vars: nginx_worker_connections: 2048 nginx_keepalive_timeout: 30
В этом файле настройки NGINX заданы через значения переменных роли
astra.nginx.nginx
.Если для запуска заданий автоматизации используется Automation Controller, зафиксируйте сделанные в проекте изменения и опубликуйте их в репозитории Git.
Запуск playbook#
Способ запуска playbook зависит от инструмента, используемого для управления задачами автоматизации.
Для запуска задания автоматизации в Automation Controller выполните следующие действия:
Для доступа к управляемым узлам создайте необходимое количество полномочий типа Машина.
Если для доступа к репозиторию с кодом проекта требуется авторизация, создайте полномочие типа Система управления версиями.
Создайте проект со следующими свойствами:
Название: NGINX.
Среда исполнения: выберите среду исполнения, использующую образ
aa-full-ee
.Примечание
Среда исполнения на основе образа
aa-full-ee
используется в Automation Controller по умолчанию. Вы можете добавить среду исполнения самостоятельно, следуя инструкции.Тип системы управления исходными данными: Git.
URL системы управления исходными данными: укажите ссылку на репозиторий с кодом проекта.
Полномочия на систему управления исходными данными: если для доступа к репозиторию с кодом проекта требуется авторизация, выберите созданное ранее полномочие типа Система управления версиями.
Создайте обычный инвентарь и добавьте в него сведения об управляемых узлах.
Совет
Вы можете использовать файл
inventory.ini
в качестве источника сведений об управляемых узлах.Создайте шаблон задания со следующими свойствами:
Тип задания: Выполнение.
Инвентарь: выберите инвентарь, созданный на предыдущем шаге.
Проект: выберите проект NGINX.
Playbook: выберите файл
playbooks/nginx.yml
.
Запустите задание на основе созданного шаблона.
При использовании Ansible Navigator для запуска playbook выполните команду:
ansible-navigator run playbooks/nginx.yml \
--eei private-hub.example.com/aa-1.2/aa-full-ee
При этом открывается псевдографический интерфейс, в котором показывается ход выполнения, например:
Для просмотра более подробной информации о ходе выполнения нажмите 0.
Статус задания выводится в правом нижнем углу.
Дождитесь перехода задания в статус Successful
.
Проверка работоспособности развернутой инфраструктуры#
Чтобы проверить корректность развертывания веб-сервера NGINX, выполните следующие действия:
Подключитесь к любому из управляемых узлов по SSH.
Для проверки статуса службы
nginx
выполните команду:systemctl status nginx
При успешном развертывании в терминал выводится сообщение вида:
Убедитесь, что в файле
/etc/nginx/nginx.conf
значения параметровworker_connections
иkeepalive_timeout
соответствуют заданным в playbook (2048
и30
соответственно).
Особенности проекта#
Обратите внимание на следующие особенности проекта:
Использование образа среды исполнения
aa-full-ee
в Automation Controller и Ansible Navigator.Настройка параметров роли через переменные.
Заключение#
В этом сценарии вы познакомились с основными шагами по развертыванию веб-сервера NGINX с использованием коллекции astra.nginx
.
Из всей последовательности шагов важно выделить следующие действия:
Подготовка окружения.
Описание параметров доступа к управляемым узлам в файле инвентаря.
Связывание управляемых узлов и ролей в playbook.
Запуск playbook с помощью Ansible Navigator и в Automation Controller.
Проверка корректности развертывания NGINX.