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 здесь.
Лицензия
Информация об авторе
© F5, Inc. 2018 - 2024
Official Ansible role for installing NGINX
ansible-galaxy install nginxinc/ansible-role-nginx