nginxinc.nginx_management_suite

Molecule CI/CD License

Роль Ansible для NGINX Management Suite

Эта роль устанавливает только NGINX Management Suite (NMS).

Примечание: Эта роль все еще активно разрабатывается. Возможно наличие неопределенных проблем, и переменные роли могут изменяться по мере продолжения разработки.

Требования

  1. Файлы лицензии NGINX Management Suite
  2. Роль 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 показан здесь.
  • При использовании этой роли вам также потребуется установить следующие коллекции. Дополнительная информация о установке этих коллекций приведена в разделе Установка.

    • ansible.posix
    • community.general
    • community.crypto
    • community.docker (требуется только, если вы планируете использовать Molecule)
  • Вам нужно будет запускать эту роль от имени пользователя root с использованием параметра become Ansible. Убедитесь, что у вас настроены соответствующие разрешения на ваших целевых хостах.

  • Инструкции по установке 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

Существует несколько способов, если вы хотите использовать последнюю версию этой роли.

  1. Используйте следующий фрагмент в вашем requirements.yml.

    roles:
      - src: https://github.com/nginxinc/ansible-role-nginx-management-suite.git
        version: main
    
  2. Используйте 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 здесь.

Лицензия

Apache License, Version 2.0

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

John Wong

Alessandro Fael Garcia

© F5, Inc. 2023

О проекте

Official Ansible role for the NGINX Management Suite

Установить
ansible-galaxy install nginxinc.nginx_management_suite
Лицензия
apache-2.0
Загрузки
2k
Владелец
We're constantly expanding our ecosystem to help you create the best web and app experience around