nginxinc.nginx_management_suite
Роль Ansible для NGINX Management Suite
Эта роль устанавливает только NGINX Management Suite (NMS).
Примечание: Эта роль все еще активно разрабатывается. Возможно наличие неопределенных проблем, и переменные роли могут изменяться по мере продолжения разработки.
Требования
- Файлы лицензии NGINX Management Suite
- Роль Ansible для NGINX (nginxinc.nginx)
Файлы сертификатов NGINX Management Suite
Для установки NMS требуются файлы сертификатов NMS для доступа к репозиторию. Войдите в MyF5 или следуйте ссылке в электронном письме активации пробной версии, чтобы скачать файлы .crt и .key для репозитория NMS:
- nginx-mgmt-suite-trial.key
- nginx-mgmt-suite-trial.crt
ПРИМЕЧАНИЕ: Обязательно измените имя этих файлов на nginx-repo.key и nginx-repo.crt соответственно.
Установка NGINX
NMS требует экземпляр NGINX, будь то NGINX OSS или NGINX Plus, только как передний план. Эта роль обрабатывает это, определяя зависимость от Роли Ansible для NGINX, названной nginxinc.nginx. Из-за этой зависимости вы можете устанавливать переменные, относящиеся к nginxinc.nginx, при использовании этой роли. Например, nginx_type — это переменная nginxinc.nginx, которую можно установить так же, как любую другую переменную Ansible. Если ваш плейбук определяет nginx_type: plus, эта роль NMS вызовет роль nginxinc.nginx, которая установит NGINX Plus. Дополнительные сведения можно найти в Роли Ansible для NGINX.
Главное различие между использованием NGINX OSS или NGINX Plus зависит от того, какой вариант аутентификации вы планируете использовать.
Ansible
Эта роль разработана и протестирована с поддерживаемыми версиями основного Ansible (выше
2.12).Эта роль была разработана и протестирована с использованием nginxinc.nginx версии 0.24.0.
- ОБНОВЛЕНИЕ 24.06.2024: Используйте версию nginxinc.nginx из ветки edge, пример
requirements.ymlпоказан здесь.
- ОБНОВЛЕНИЕ 24.06.2024: Используйте версию nginxinc.nginx из ветки edge, пример
При использовании этой роли вам также потребуется установить следующие коллекции. Дополнительная информация о установке этих коллекций приведена в разделе Установка.
- ansible.posix
- community.general
- community.crypto
- community.docker (требуется только, если вы планируете использовать Molecule)
Вам нужно будет запускать эту роль от имени пользователя root с использованием параметра
becomeAnsible. Убедитесь, что у вас настроены соответствующие разрешения на ваших целевых хостах.Инструкции по установке Ansible можно найти на сайте Ansible.
Jinja2
- Эта роль использует шаблоны Jinja2. Ansible по умолчанию устанавливает Jinja2, но в зависимости от вашего установочного и/или обновительного пути вы можете использовать устаревшую версию. Минимальная версия Jinja2, необходимая для правильной работы роли, составляет
3.1. - Инструкции по установке Jinja2 можно найти на сайте Jinja2.
Molecule (по желанию)
Вам может понадобиться использовать это, если вы вносите изменения в эту Ansible роль.
Molecule используется для тестирования различных функциональностей роли. Рекомендуемая версия Molecule для тестирования этой роли —
4.0.1.Инструкции по установке Molecule можно найти на сайте Molecule. Также вам нужно будет установить драйвер Molecule Docker.
Чтобы запустить тесты Molecule, вам нужно скопировать вашу лицензию NMS в папку роли
files/license.Вы также можете добавить сертификат и ключ вашего репозитория NGINX Management Suite в локальное окружение. Выполните следующие команды, чтобы экспортировать эти файлы как переменные, закодированные в base64, и запустить тесты Molecule:
export NGINX_CRT=$( cat <путь к вашему файлу сертификата> | base64 ) export NGINX_KEY=$( cat <путь к вашему файлу ключа> | base64 ) molecule test -s plus
Использование
Следуйте этим шагам для установки NGINX Management Suite (nms) с использованием этой Ansible роли.
Создайте файл инвентаря
Создайте файл инвентаря inventory со следующим содержимым.
[nms]
<hostname> ansible_user=<adminUserName> ansible_become=yes
Установите необходимые роли и коллекции
Установите пакеты, необходимые для этой роли. Создайте файл requirements.yml со следующим содержимым:
---
roles:
- name: nginxinc.nginx_management_suite
version: 0.3.0
collections:
- name: ansible.posix
version: 1.5.1
- name: community.general
version: 6.4.0
- name: community.crypto
version: 2.11.0
- name: community.docker # Требуется только, если вы планируете использовать Molecule (см. ниже)
version: 3.4.2
Используйте команду для установки роли Ansible и коллекций.
ansible-galaxy install -r requirements.yml
Если они уже установлены, но вам нужно обновить их до более новых версий, используйте команду ниже.
ansible-galaxy install -fr requirements.yml
Переместите сертификаты NGINX в известное место
В этом примере мы переместим сертификаты NGINX в ту же директорию, где я буду создавать файл плейбука для установки NMS.
Создайте плейбук
Создайте файл плейбука nms-install.yml, используя следующий пример. Здесь мы устанавливаем NMS с NGINX Plus.
Обязательно укажите путь, где находятся ваши сертификаты NGINX. В этом примере они находятся в том же пути, что и этот плейбук.
- name: Установить NGINX Management Suite
hosts: nms
tasks:
- name: Установить NMS
ansible.builtin.include_role:
name: nginxinc.nginx_management_suite
vars:
nms_setup: install
nms_user_name: admin
nms_user_passwd: default
nginx_type: plus
nginx_selinux: true
nginx_selinux_enforcing: false
nginx_license:
certificate: nginx-repo.crt
key: nginx-repo.key
Установите NMS
Запустите следующую команду для выполнения плейбука, который установит NMS.
ansible-playbook -i inventory nms-adm-install.yml
Использование последней версии роли NMS Ansible, известной как ветка main
Существует несколько способов, если вы хотите использовать последнюю версию этой роли.
Используйте следующий фрагмент в вашем
requirements.yml.roles: - src: https://github.com/nginxinc/ansible-role-nginx-management-suite.git version: mainИспользуйте
git clone https://github.com/nginxinc/ansible-role-nginx-management-suite.git, чтобы получить последнюю версию роли (веткаmain) с GitHub.
Платформы
Эта роль Ansible поддерживает все платформы, поддерживаемые NGINX Management Suite:
NGINX Management Suite
Amazon Linux 2:
- любой
CentOS:
- 7.4+
Debian:
- buster (10)
- bullseye (11)
Oracle Linux:
- 7.4+
- 8
Red Hat:
- 7.4+
- 8
- 9
Ubuntu:
- bionic (18.04)
- focal (20.04)
- jammy (22.04)
Примечание: Вы также можете использовать эту роль для установки NGINX Management Suite на совместимые, но неподдерживаемые платформы на свой страх и риск.
Переменные роли
Эта роль имеет несколько переменных. Описания и значения по умолчанию для всех этих переменных можно найти в файле defaults/main/:
| Имя | Описание |
|---|---|
main.yml |
Переменные установки NMS |
Точно так же описания и значения по умолчанию для предустановленных переменных можно найти в файле vars/:
| Имя | Описание |
|---|---|
main.yml |
Список поддерживаемых переменных установки NMS |
Примеры плейбуков
Работающие примеры функциональных плейбуков можно найти в папке molecule/:
| Имя | Описание |
|---|---|
default/converge.yml |
Установить NGINX OSS и NMS |
plus/converge.yml |
Установить NGINX Plus и NMS |
upgrade/converge.yml |
Обновить NMS |
modules/converge.yml |
Установить NGINX OSS и NMS и модуль API Connectivity Manager |
service-stopped/converge.yml |
Установите NGINX OSS и NMS, разрешите службам находиться в выбранном состоянии |
Учтите, что если вы установите этот репозиторий через Ansible Galaxy, вам нужно будет заменить переменные роли в примерах плейбуков с ansible-role-nginx-management-suite на nginxinc.nginx_management_suite.
Другие роли и коллекции NGINX Ansible
Вы можете найти коллекцию ролей Ansible NGINX Core для установки и настройки NGINX Open Source, NGINX Plus и NGINX App Protect здесь.
Вы можете найти роль Ansible для настройки NGINX здесь.
Вы можете найти роль Ansible для установки NGINX Unit здесь.
Лицензия
Информация об авторе
© F5, Inc. 2023
ansible-galaxy install nginxinc.nginx_management_suite