nginx

Ansible Роль для NGINX

Эта роль устанавливает NGINX (NGINX Open Source), NGINX Plus, NGINX Agent и/или NGINX Amplify агент на ваши целевые хосты.

[!ВАЖНО] Эта роль все еще активно разрабатывается. Могут быть нераспознанные проблемы, и переменные роли могут изменяться по мере продолжения разработки.

Требования к роли

NGINX

В зависимости от вашего случая использования NGINX, вам может потребоваться получить лицензию или API ключ/токен, прежде чем смочь использовать эту роль:

Продукт Требования
NGINX Нет
NGINX Plus Лицензия NGINX Plus (как лицензионный ключ, так и файлы crt)
NGINX Agent Совместимая управляющая плоскость и (по желанию) токен управляющей плоскости NGINX One SaaS
NGINX Amplify API ключ, найденный в консоли NGINX Amplify SaaS

Ansible

Если вы хотите использовать эту роль, вам нужно будет использовать поддерживаемую версию Ansible core и Jinja2, а также несколько коллекций Ansible.

Для удобства вы можете установить и/или обновить Ansible core, Jinja2 и упомянутые коллекции Ansible, выполнив следующие четыре команды на вашем хосте Ansible:

pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/main/.github/workflows/requirements/requirements_ansible.txt
curl -O https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/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 2.18 больше не поддерживает модуль yum, и поэтому не поддерживается этой ролью до тех пор, пока Amazon Linux 2 не достигнет конца жизни.

  • При использовании Ansible core вам также нужно будет установить следующие коллекции Ansible:

    ---
    collections:
      - name: ansible.posix
        version: 1.5.4
      - name: community.general
        version: 9.2.0
      - name: community.crypto # Требуется только если вы планируете установить NGINX Plus
        version: 2.21.1
      - name: community.docker # Требуется только если вы планируете использовать Molecule (см. ниже)
        version: 3.11.0
    
  • Вам нужно будет запускать эту роль от имени пользователя root, используя параметр become в Ansible. Убедитесь, что у вас настроены соответствующие права на целевых хостах.

  • Инструкции по установке 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/main/.github/workflows/requirements/requirements_ansible_lint.txt
    

Molecule (необязательно)

  • Molecule используется для тестирования различных функций роли.

  • Инструкции по установке Molecule можно найти на сайте Molecule. Вам также нужно будет установить пакет плагинов Molecule и Docker Python SDK.

  • Чтобы выполнить любые тесты Molecule для NGINX Plus, вам сначала необходимо скопировать вашу лицензию NGINX Plus в каталог files/license роли.

    Вы также можете добавить свой сертификат репозитория NGINX Plus и ключ в локальную среду. Выполните следующие команды, чтобы экспортировать эти файлы как переменные, закодированные в base64, и выполнить тесты Molecule:

    export NGINX_CRT=$( cat <path to your certificate file> | base64 )
    export NGINX_KEY=$( cat <path to your key file> | base64 )
    molecule test -s plus
    
  • Для удобства вы можете установить и/или обновить Molecule, пакет плагинов Molecule и Docker Python SDK, выполнив следующую команду на вашем хосте Ansible:

    pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/main/.github/workflows/requirements/requirements_molecule.txt
    

Установка роли

Эту роль можно установить как через Ansible Galaxy (торговая площадка сообщества Ansible), так и клонированием этого репозитория. После установки вам нужно будет включить роль в ваш Ansible playbook, используя ключевое слово roles, модуль import_role или модуль include_role.

Ansible Galaxy

Чтобы установить последнюю стабильную версию роли на вашей системе, используйте:

ansible-galaxy install nginxinc.nginx

Если вы уже установили роль, вы можете обновить ее до последней версии, используя:

ansible-galaxy install -f nginxinc.nginx

Чтобы использовать роль, добавьте следующую задачу в ваш playbook:

- name: Установить NGINX
  ansible.builtin.include_role:
    name: nginxinc.nginx

Git

Чтобы получить последний коммит роли из GitHub, используйте:

git clone https://github.com/nginxinc/ansible-role-nginx.git

Чтобы использовать роль, включите следующую задачу в ваш playbook:

- name: Установить NGINX
  ansible.builtin.include_role:
    name: <path/to/repo> # например, <roles/ansible-role-nginx>, если вы клонировали репозиторий в каталог ролей вашего проекта

Платформы

Роль NGINX Ansible поддерживает почти все платформы, поддерживаемые NGINX Open Source, NGINX Plus, NGINX Agent и NGINX Amplify агентом:

NGINX Open Source

AlmaLinux:
  - 8
  - 9
Alpine:
  - 3.17
  - 3.18
  - 3.19
  - 3.20
Amazon Linux:
  - 2
  - 2023
Debian:
  - bullseye (11)
  - bookworm (12)
Oracle Linux:
  - 8
  - 9
Red Hat:
  - 8
  - 9
Rocky Linux:
  - 8
  - 9
SUSE/SLES:
  - 12
  - 15
Ubuntu:
  - focal (20.04)
  - jammy (22.04)
  - mantic (23.10)
  - noble (24.04)

NGINX Plus

AlmaLinux:
  - 8
  - 9
Alpine:
  - 3.16
  - 3.17
  - 3.18
  - 3.19
Amazon Linux:
  - 2
  - 2023
Debian:
  - bullseye (11)
  - bookworm (12)
FreeBSD:
  - 13
  - 14
Oracle Linux:
  - 8.1+
  - 9
Red Hat:
  - 8.1+
  - 9
Rocky Linux:
  - 8
  - 9
SUSE/SLES:
  - 12
  - 15
Ubuntu:
  - focal (20.04)
  - jammy (22.04)
  - noble (24.04)

NGINX Agent

AlmaLinux:
  - 8
  - 9
Alpine:
  - 3.17
  - 3.18
  - 3.19
  - 3.20
Amazon Linux:
  - 2
  - 2023
Debian:
  - bullseye (11)
  - bookworm (12)
FreeBSD:
  - 13
  - 14
Oracle Linux:
  - 8
  - 9
Red Hat:
  - 8
  - 9
Rocky Linux:
  - 8
  - 9
SUSE/SLES:
  - 12
  - 15
Ubuntu:
  - focal (20.04)
  - jammy (22.04)
  - noble (24.04)

NGINX Amplify Agent

Amazon Linux:
  - 2
Debian:
  - buster (10)
  - bullseye (11)
Red Hat:
  - 8
  - 9
Ubuntu:
  - bionic (18.04)
  - focal (20.04)
  - jammy (22.04)

[!ПРЕДУПРЕЖДЕНИЕ] На ваш собственный риск вы также можете использовать эту роль для компиляции NGINX Open Source из исходников, установки NGINX Open Source на "совместимые", но неподдерживаемые платформы, установки NGINX из менеджера пакетов вашего дистрибутива или установки NGINX Open Source на системах BSD.

Переменные роли

Эта роль имеет несколько переменных. Описание и значения по умолчанию для всех этих переменных можно найти в defaults/main/ директории в следующих файлах:

Название Описание
main.yml Переменные установки NGINX
agent.yml Переменные установки NGINX Agent
amplify.yml Переменные установки NGINX Amplify агента
bsd.yml Переменные установки для BSD
logrotate.yml Переменные конфигурации logrotate
selinux.yml Переменные конфигурации SELinux
systemd.yml Переменные конфигурации systemd

Аналогично, описания и значения по умолчанию для предустановленных переменных можно найти в vars/ директории в следующих файлах:

Название Описание
main.yml Список поддерживаемых платформ NGINX, модулей и переменных установки для Linux

Примеры playbooks

Рабочие примеры playbook можно найти в molecule/ папке в следующих файлах:

Название Описание
agent/converge.yml Установка и настройка NGINX Agent для подключения к управляющей плоскости NGINX One SaaS на F5 Distributed Cloud
amplify/converge.yml Установка и настройка NGINX Amplify агента
default/converge.yml Установка конкретной версии NGINX, установка различных поддерживаемых модулей NGINX, настройка systemd и настройка logrotate
distribution/converge.yml Установка NGINX из репозитория пакетов дистрибутива вместо репозитория пакетов NGINX
downgrade/converge.yml Понижение до конкретной версии NGINX
downgrade-plus/converge.yml Понижение до конкретной версии NGINX Plus
plus/converge.yml Установка NGINX Plus и различных поддерживаемых модулей NGINX Plus
source/converge.yml Установка NGINX из исходников
stable/converge.yml Установка NGINX с использованием последней стабильной версии
uninstall/converge.yml Удаление NGINX
uninstall-plus/converge.yml Удаление NGINX Plus
upgrade/converge.yml Обновление NGINX
upgrade-plus/converge.yml Обновление NGINX Plus
version/converge.yml Установка конкретной версии NGINX и различных модулей NGINX

[!ПРИМЕЧАНИЕ] Если вы установите этот репозиторий через Ansible Galaxy, вам нужно будет заменить переменную include_role в примерных playbooks с ansible-role-nginx на nginxinc.nginx.

Другие коллекции и роли NGINX Ansible

Вы можете найти коллекцию ролей Ansible NGINX Core для установки и настройки NGINX Open Source, NGINX Plus и NGINX App Protect здесь.

Вы можете найти роль Ansible NGINX конфигурации для настройки NGINX здесь.

Вы можете найти роль Ansible NGINX App Protect для установки и настройки NGINX App Protect WAF и NGINX App Protect DoS здесь.

Вы можете найти роль Ansible NGINX Unit для установки NGINX Unit здесь.

Лицензия

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

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

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

Гжегож Дзиен

Том Гамалл

© F5, Inc. 2018 - 2024

О проекте

Official Ansible role for installing NGINX

Установить
ansible-galaxy install nginxinc/ansible-role-nginx
Лицензия
apache-2.0
Загрузки
3155443
Владелец
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