Развертывание веб-сервера NGINX#
Использование коллекции astra.nginx из реестра Automation Hub позволяет автоматизировать процесс установки и настройки веб-сервера NGINX на необходимом количестве узлов.
Описание сценария#
Процесс установки и настройки веб-сервера NGINX состоит из следующих этапов:
Создание стенда.
В качестве стенда рекомендуется использовать управляемые узлы, обладающие следующими характеристиками:
Характеристика
Значение
Кол-во ядер CPU
≥ 2
Кол-во RAM, ГБ
≥ 2
Размер хранилища, ГБ
≥ 20
ОС
Astra Linux Special Edition 1.7.5uu1
Для подключения к стенду используется протокол SSH.
Если у вас нет подходящего стенда, вы можете создать его с помощью Vagrant, используя приложенный
Vagrantfile.Подготовка проекта Ansible.
requirements.yml– зависимости;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 с Automation Hub. Убедитесь, что коллекция
astra.nginxзагружена в репозиторий, доступный пользователям.Изучите описание коллекции
astra.nginx.Подготовьте каталог для хранения файлов проекта.
Если для управления задачами автоматизации используется Automation Controller, выполните следующие действия:
В одном из сервисов хранения репозиториев Git создайте пустой репозиторий для проекта.
Клонируйте этот репозиторий на локальный компьютер.
Если для управления задачами автоматизации используется Ansible Navigator, создайте в любом удобном месте пустой каталог, например:
mkdir ~/ansible-nginx/
Подготовка проекта Ansible#
Подготовьте ресурсы, необходимые для использования Ansible.
Создайте файл
ansible.cfgсо следующим содержимым:[defaults] ansible_python_interpreter = /usr/bin/python3 host_key_checking = false inventory = inventory.ini [galaxy] server_list = galaxy, private_automation_hub [galaxy_server.galaxy] url = https://galaxy.ansible.com/ [galaxy.private_automation_hub] url = <private_automation_hub_repository_url>
Согласно инструкции добавьте в
ansible.cfgнастройки, обеспечивающие доступ к репозиторию Private Automation Hub, содержащему коллекциюastra.nginx.Создайте файл инвентаря
inventory.ini, например:[all] node1.example.com ansible_host=192.168.56.11 ansible_user=vagrant
В этом примере показаны настройки подключения к одному управляемому узлу.
Создайте файл зависимостей Ansible
requirements.yml:--- collections: - name: astra.nginx version: 1.8.3
В этом файле указаны параметры подключаемой коллекции:
name– название;version– версия.Важно
Для получения актуального номера версии коллекции обратитесь к ее описанию в Private Automation Hub.
Создайте подкаталог
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.
Создайте в контроллере полномочие, обеспечивающее доступ к Private Automation Hub. Для этого следуйте инструкции.
Если для управления задачами автоматизации используется Ansible Navigator, выполните команду установки зависимостей:
ansible-navigator exec -- ansible-galaxy collection install -r requirements.yml
Если настройки выполнены корректно, в терминал выводятся сообщения следующего вида:
Starting galaxy collection install process Process install dependency map Starting collection install process Downloading https://hub.astra-automation.ru/api/galaxy/v3/plugin/ansible/content/validated/collections/artifacts/astra-nginx-1.8.3.tar.gz to /root/.ansible/tmp/ansible-local-157z5isxaa/tmpdjhla2qi/astra-nginx-1.8.3-kzmwnb1x Installing 'astra.nginx:1.8.3' to '/home/vagrant/nginx/collections/ansible_collections/astra/nginx' astra.nginx:1.8.3 was installed successfully
Запуск playbook#
Способ запуска playbook зависит от инструмента, используемого для управления задачами автоматизации.
Для запуска задания автоматизации в Automation Controller выполните следующие действия:
Для доступа к управляемым узлам создайте необходимое количество полномочий типа Машина.
Если для доступа к репозиторию с кодом проекта требуется авторизация, создайте полномочие типа Система управления версиями.
Создайте проект со следующими свойствами:
Название: NGINX.
Тип системы управления исходными данными: Git.
URL системы управления исходными данными: укажите ссылку на репозиторий с кодом проекта.
Полномочия на систему управления исходными данными: если для доступа к репозиторию с кодом проекта требуется авторизация, выберите созданное ранее полномочие типа «Система управления версиями».
Создайте обычный инвентарь и добавьте в него сведения об управляемых узлах.
Совет
Вы можете использовать файл
inventory.iniв качестве источника сведений об управляемых узлах.Создайте шаблон задания со следующими свойствами:
Тип задания: Выполнение.
Инвентарь: выберите инвентарь, созданный на предыдущем шаге.
Проект: выберите проект NGINX.
Playbook: выберите файл
playbooks/nginx.yml.
Запустите задание на основе созданного шаблона.
При использовании Ansible Navigator для запуска playbook выполните команду:
ansible-navigator run playbooks/nginx.yml
При этом открывается псевдографический интерфейс, в котором показывается ход выполнения, например:
Для просмотра более подробной информации о ходе выполнения нажмите 0.
Статус задания выводится в правом нижнем углу.
Дождитесь перехода задания в статус Successful.
Проверка работоспособности развернутой инфраструктуры#
Чтобы проверить корректность развертывания веб-сервера NGINX, выполните следующие действия:
Подключитесь к любому из управляемых узлов по SSH.
Для проверки статуса службы
nginxвыполните команду:systemctl status nginx
При успешном развертывании в терминал выводится сообщение вида:
Убедитесь, что в файле
/etc/nginx/nginx.confзначения параметровworker_connectionsиkeepalive_timeoutсоответствуют заданным в playbook.
Особенности проекта#
Обратите внимание на следующие особенности проекта:
Порядок подключения коллекции.
Настройка проекта на использование Private Automation Hub для загрузки коллекций.
Настройка параметров роли.
Настройка параметров Ansible.
Заключение#
В этом сценарии вы познакомились с основными шагами по развертыванию веб-сервера NGINX с использованием коллекции astra.nginx.
Из всей последовательности шагов важно выделить следующие действия:
Подготовка окружения.
Описание коллекции в файле зависимостей.
Описание параметров доступа к управляемым узлам в файле инвентаря.
Связывание управляемых узлов и ролей в playbook.
Запуск playbook с помощью Ansible Navigator и в Automation Controller.
Проверка корректности развертывания NGINX.