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/ansible-role-nginx-config