nginxinc.nginx_config
👾 Помогите улучшить роль Ansible для конфигурации NGINX, участвуя в нашем опросе! 👾
Роль конфигурации NGINX для Ansible
Эта роль настраивает NGINX Open Source и NGINX Plus на вашем целевом хосте.
[!ВАЖНО] Эта роль все еще активно разрабатывается. Могут быть неопределенные проблемы, а переменные роли могут измениться по мере разработки.
Требования к роли
Ansible
Если вы хотите использовать эту роль, вам потребуется поддерживаемая версия Ansible core и Jinja2, а также несколько коллекций Ansible.
Для простоты использования вы можете установить и/или обновить Ansible core, Jinja2 и упомянутые коллекции Ansible, запустив следующие четыре команды на вашем хосте Ansible:
pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx-config/main/.github/workflows/requirements/requirements_ansible.txt
curl -O https://raw.githubusercontent.com/nginxinc/ansible-role-nginx-config/main/.github/workflows/requirements/requirements_collections.yml
ansible-galaxy install --force -r requirements_collections.yml
rm -f requirements_collections.yml
Это также обеспечит развертывание/исполнение этой роли с полностью протестированной версией упомянутых пакетов/коллекций.
Ansible core
- Эта роль разрабатывается и тестируется с поддерживаемыми версиями Ansible core и Python. 
- При использовании Ansible core вам также потребуется установить следующие коллекции Ansible: - --- collections: - name: ansible.posix version: 1.5.4 - name: community.general version: 9.0.1 - name: community.docker # Требуется только если вы планируете использовать Molecule (см. ниже) version: 3.10.3
- Инструкции по установке Ansible core можно найти в документации Ansible. 
- Инструкции по установке коллекций Ansible можно найти в руководстве коллекций Ansible. 
[!Совет] Вы также можете установить распределение сообщества Ansible (то, что все еще называется Ansible -- вместо Ansible core), если вы не хотите управлять отдельными коллекциями.
Jinja2
- Эта роль использует шаблоны Jinja2. Ansible core по умолчанию устанавливает Jinja2, но в зависимости от вашего пути установки и/или обновления, вы можете использовать устаревшую версию Jinja2. Минимальная версия Jinja2, необходимая для правильной работы роли, составляет 3.1.
- Инструкции по установке Jinja2 можно найти на сайте Jinja2.
Тестовая среда (опционально)
Если вы хотите внести свой вклад в эту роль, вам также потребуется установить Ansible Lint и Molecule.
Ansible Lint (опционально)
- Ansible Lint используется для проверки роли на соответствие лучшим практикам Ansible и потенциальным проблемам с Ansible/YAML. 
- Инструкции по установке Ansible Lint можно найти на сайте Ansible Lint. 
- После установки использовать Ansible Lint так же просто, как запустить: - ansible-lint
- Для простоты использования вы можете установить и/или обновить Ansible Lint, запустив следующую команду на вашем хосте Ansible: - pip install -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx-config/main/.github/workflows/requirements/requirements_ansible_lint.txt
Molecule (опционально)
- Molecule используется для тестирования различных функций роли. 
- Инструкции по установке Molecule можно найти на сайте Molecule. Вам также потребуется установить пакет плагинов Molecule и Docker Python SDK. 
- Чтобы запустить тесты Molecule для конфигурации NGINX Plus/App Protect, вам необходимо скопировать свой лицензии NGINX Plus/App Protect в директорию Molecule - common/files/licenseданной роли.- Вы также можете добавить свой сертификат и ключ репозитория NGINX Plus/App Protect в локальную среду. Выполните следующие команды, чтобы экспортировать эти файлы в виде закодированных в формате base64 переменных и запустить тесты Molecule: - export NGINX_CRT=$( cat <путь к вашему сертификату> | base64 ) export NGINX_KEY=$( cat <путь к вашему ключу> | base64 ) molecule test -s plus
- Для простоты использования вы можете установить и/или обновить Molecule, пакет плагинов Molecule и Docker Python SDK, запустив следующую команду на вашем хосте Ansible: - pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx-config/main/.github/workflows/requirements/requirements_molecule.txt
Установка роли
Эту роль можно установить через Ansible Galaxy (рынок сообщества Ansible) или клонированием этого репозитория. После установки вам нужно будет включить роль в ваш Ansible playbook, используя ключевое слово roles, модуль import_role или модуль include_role.
Ansible Galaxy
Чтобы установить последнюю стабильную версию роли на вашей системе, используйте:
ansible-galaxy install nginxinc.nginx_config
Если вы уже установили роль, вы можете обновить её до последней версии, используя:
ansible-galaxy install -f nginxinc.nginx_config
Чтобы использовать роль, включите следующую задачу в ваш playbook:
- name: Настроить NGINX
  ansible.builtin.include_role:
    name: nginxinc.nginx_config
Git
Чтобы получить последний коммит роли из GitHub, используйте:
git clone https://github.com/nginxinc/ansible-role-nginx-config.git
Чтобы использовать роль, включите следующую задачу в ваш playbook:
- name: Настроить NGINX
  ansible.builtin.include_role:
    name: <путь/к/репозиторию> # например, <roles/ansible-role-nginx-config>, если вы клонировали репозиторий внутрь директории ролей вашего проекта
Платформы
Роль конфигурации NGINX для Ansible поддерживает все платформы, поддерживаемые NGINX Open Source и NGINX Plus.
[!Заметка] Вы должны иметь возможность использовать эту роль для настройки любой установки NGINX — где бы и как бы она ни была установлена — на свой страх и риск. Любые потенциальные ошибки, связанные с поддерживаемыми методами/платформами установки, будут решаться по мере возможностей и могут быть просто отклонены.*
Переменные роли
Эта роль имеет несколько переменных. Описания и значения по умолчанию для всех этих переменных можно найти в defaults/main/ каталоге в следующих файлах:
| Имя | Описание | 
|---|---|
| main.yml | Простые переменные конфигурации NGINX | 
| selinux.yml | Настройка SELinux для разрешения необходимых соединений с вашей настройкой NGINX | 
| template.yml | Переменные шаблона конфигурации NGINX | 
| upload.yml | Переменные загрузки конфигурации/HTML/SSL NGINX | 
Примеры Playbooks
Рабочие примеры playbook можно найти в каталоге molecule/ в следующих файлах:
| Имя | Описание | 
|---|---|
| api/converge.yml | Настройка API и панели мониторинга NGINX Plus | 
| cleanup_config/converge.yml | Очистка конфигурации NGINX | 
| complete/converge.yml | Тестирование правильности темплейтов всех директив NGINX | 
| complete_plus/converge.yml | Тестирование правильности темплейтов всех директив NGINX Plus | 
| default/converge.yml | Настройка NGINX с конфигурацией, максимально приближенной к стандартной | 
| push_config/converge.yml | Перенос существующей конфигурации NGINX из вашей системы на вашу инстанцию NGINX | 
| reverse_proxy/converge.yml | Настройка NGINX как обратного прокси между двумя веб-серверами | 
| stub_status/converge.yml | Настройка метрик состояния NGINX Open Source | 
| web_server/converge.yml | Настройка NGINX как веб-сервера | 
[!Заметка] Если вы установите этот репозиторий через Ansible Galaxy, вам нужно будет заменить переменную
include_roleв примерах playbook сansible-role-nginx-configнаnginxinc.nginx_config.
Другие коллекции и роли NGINX для Ansible
Вы можете найти коллекцию ролей Ansible для NGINX Core, чтобы установить и настроить NGINX Open Source, NGINX Plus и NGINX App Protect здесь.
Вы можете найти роль Ansible для установки NGINX OSS и NGINX Plus здесь.
Вы можете найти роль Ansible для установки и настройки NGINX App Protect WAF и NGINX App Protect DoS здесь.
Вы можете найти роль Ansible для установки NGINX Unit здесь.
Лицензия
Информация об авторе
© F5, Inc. 2020 - 2024
Official Ansible role for configuring NGINX
ansible-galaxy install nginxinc.nginx_config