nginx_config

Ansible Galaxy Molecule CI/CD License Project Status: Active – Проект достиг стабильного состояния и активно разрабатывается. Community Support Contributor Covenant

👾 Помогите улучшить роль 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 здесь.

Лицензия

Лицензия Apache, версия 2.0

Информация об авторе

Александро Фаэл Гарсия

© F5, Inc. 2020 - 2024

О проекте

Official Ansible role for configuring NGINX

Установить
ansible-galaxy install nginxinc/ansible-role-nginx-config
Лицензия
apache-2.0
Загрузки
1315460
Владелец
Welcome to this part of the NGINX open source world. We're constantly expanding our ecosystem designed to help you create the best web and app experience around