nginxinc.nginx_management_suite
Rol de Ansible para la Suite de Gestión de NGINX
Este rol solo instala la Suite de Gestión de NGINX (NMS).
Nota: Este rol todavía está en desarrollo activo. Puede haber problemas no identificados y las variables del rol pueden cambiar a medida que continúa el desarrollo.
Requisitos
- Archivos de licencia de la Suite de Gestión de NGINX
- Rol de Ansible para NGINX (nginxinc.nginx)
Archivos de Certificado de la Suite de Gestión de NGINX
Para instalar NMS, se requieren los archivos de certificado para acceder al repositorio. Inicia sesión en MyF5 o sigue el enlace en el correo de activación de prueba para descargar el archivo .crt y .key del repositorio de NMS:
- nginx-mgmt-suite-trial.key
- nginx-mgmt-suite-trial.crt
NOTA: Asegúrate de renombrar estos archivos a nginx-repo.key y nginx-repo.crt, respectivamente.
Instancia de NGINX
NMS necesita una instancia de NGINX, ya sea NGINX OSS o NGINX Plus como frontend solamente. Este rol maneja esto definiendo una dependencia del Rol de Ansible para NGINX, llamado nginxinc.nginx. Debido a esta dependencia, puedes establecer variables relacionadas con nginxinc.nginx al usar este rol. Por ejemplo, nginx_type es una variable de nginxinc.nginx que puede ser establecida como cualquier otra variable de Ansible. Así que si tu playbook define nginx_type: plus, este rol de NMS llamará al rol nginxinc.nginx que instalará NGINX Plus. Consulta el Rol de Ansible NGINX para más detalles.
La principal diferencia entre usar NGINX OSS o NGINX Plus depende de qué Opción de Autenticación planeas usar.
Ansible
Este rol fue desarrollado y probado con versiones mantenidas de Ansible core (superior a
2.12).Este rol fue desarrollado y probado usando nginxinc.nginx versión 0.24.0.
- ACTUALIZACIÓN 6/24/24: Usa la versión de nginxinc.nginx en la rama edge, un ejemplo de
requirements.ymlse muestra aquí
- ACTUALIZACIÓN 6/24/24: Usa la versión de nginxinc.nginx en la rama edge, un ejemplo de
Al usar este rol, también necesitarás instalar las siguientes colecciones. Información adicional sobre cómo instalar estas colecciones se encuentra en la sección Instalación a continuación.
- ansible.posix
- community.general
- community.crypto
- community.docker (solo necesario si planeas usar Molecule)
Necesitarás ejecutar este rol como un usuario root usando el parámetro
becomede Ansible. Asegúrate de haber configurado los permisos apropiados en tus hosts de destino.Las instrucciones sobre cómo instalar Ansible se pueden encontrar en el sitio web de Ansible.
Jinja2
- Este rol utiliza plantillas Jinja2. Ansible core instala Jinja2 por defecto, pero dependiendo de tu instalación y/o ruta de actualización, podrías estar ejecutando una versión desactualizada. La versión mínima de Jinja2 requerida para que el rol funcione correctamente es
3.1. - Las instrucciones sobre cómo instalar Jinja2 se pueden encontrar en el sitio web de Jinja2.
Molecule (Opcional)
Querrás usar esto si estás haciendo contribuciones a este rol de Ansible.
Molecule se usa para probar las diversas funcionalidades del rol. La versión recomendada de Molecule para probar este rol es
4.0.1.Las instrucciones sobre cómo instalar Molecule se pueden encontrar en el sitio web de Molecule. También necesitarás instalar el controlador de Docker de Molecule.
Para ejecutar las pruebas de Molecule, debes copiar tu licencia de NMS a la carpeta
files/licensedel rol.También puedes agregar tu certificado y clave del repositorio de la Suite de Gestión de NGINX al entorno local. Ejecuta los siguientes comandos para exportar estos archivos como variables codificadas en base64 y ejecutar las pruebas de Molecule:
export NGINX_CRT=$( cat <ruta a tu archivo de certificado> | base64 ) export NGINX_KEY=$( cat <ruta a tu archivo de clave> | base64 ) molecule test -s plus
Uso
Sigue estos pasos para instalar la Suite de Gestión de NGINX (NMS) utilizando este rol de Ansible.
Crear Archivo de Inventario
Querrás crear un archivo de inventario, inventory, con el siguiente contenido.
[nms]
<hostname> ansible_user=<adminUserName> ansible_become=yes
Instalar Roles y Colecciones Requeridas
Deberás instalar los requisitos de paquetes que este rol necesita. Crea un archivo requirements.yml con el siguiente contenido:
---
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 # Solo requerido si planeas usar Molecule (ver abajo)
version: 3.4.2
Usa el siguiente comando para instalar el rol y las colecciones de Ansible.
ansible-galaxy install -r requirements.yml
Si ya tienes estas instalaciones pero necesitas actualizar a versiones más nuevas, usa el siguiente comando.
ansible-galaxy install -fr requirements.yml
Mover Certificados de NGINX a una Ubicación Conocida
En este ejemplo, moveremos los certificados de NGINX al mismo directorio donde crearé el archivo de playbook de instalación de NMS.
Crear un Playbook
Crea un archivo de playbook, nms-install.yml, utilizando el siguiente ejemplo. Aquí, estamos instalando NMS con NGINX Plus.
Asegúrate de especificar la ruta donde se encuentran tus certificados de NGINX. En el ejemplo aquí, están en la misma ruta que este playbook.
- name: Instalar la Suite de Gestión de NGINX
hosts: nms
tasks:
- name: Instalar 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
Instalar NMS
Ejecuta el siguiente comando para ejecutar el playbook que instalará NMS.
ansible-playbook -i inventory nms-adm-install.yml
Usando la Última Versión de NMS desde el Rol de Ansible, conocida como la Rama main
Hay un par de métodos si deseas usar la última versión de este rol.
Usa el siguiente fragmento en tu
requirement.yml.roles: - src: https://github.com/nginxinc/ansible-role-nginx-management-suite.git version: mainUsa
git clone https://github.com/nginxinc/ansible-role-nginx-management-suite.gitpara obtener el último commit de la ramamaindel rol desde GitHub.
Plataformas
Este rol de Ansible es compatible con todas las plataformas soportadas por la Suite de Gestión de NGINX:
Suite de Gestión de NGINX
Amazon Linux 2:
- cualquier
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)
Nota: También puedes usar este rol para instalar la Suite de Gestión de NGINX en plataformas compatibles pero no soportadas bajo tu propio riesgo.
Variables del Rol
Este rol tiene múltiples variables. Las descripciones y valores predeterminados de todas estas variables se pueden encontrar en la carpeta defaults/main/ en el siguiente archivo:
| Nombre | Descripción |
|---|---|
main.yml |
Variables de instalación de NMS |
De manera similar, las descripciones y valores predeterminados de las variables preestablecidas se pueden encontrar en la carpeta vars/ en el siguiente archivo:
| Nombre | Descripción |
|---|---|
main.yml |
Lista de variables de instalación de NMS soportadas |
Ejemplos de Playbooks
Ejemplos de playbooks funcionales se pueden encontrar en la carpeta molecule/ en los siguientes archivos:
| Nombre | Descripción |
|---|---|
default/converge.yml |
Instalar NGINX OSS y NMS |
plus/converge.yml |
Instalar NGINX Plus y NMS |
upgrade/converge.yml |
Actualizar NMS |
modules/converge.yml |
Instalar NGINX OSS y NMS y el módulo de Gestor de Conectividad API |
service-stopped/converge.yml |
Instalar NGINX OSS y NMS, permitir que los servicios estén en el estado elegido |
Ten en cuenta que si instalas este repositorio a través de Ansible Galaxy, deberás reemplazar la variable del rol en los ejemplos de playbooks de ansible-role-nginx-management-suite a nginxinc.nginx_management_suite.
Otras Colecciones y Roles de Ansible de NGINX
Puedes encontrar la colección de roles de Ansible NGINX Core para instalar y configurar NGINX Open Source, NGINX Plus y NGINX App Protect aquí.
Puedes encontrar el rol de Ansible de configuración de NGINX para configurar NGINX aquí.
Puedes encontrar el rol de Ansible de NGINX Unit para instalar NGINX Unit aquí.
Licencia
Información del Autor
© F5, Inc. 2023
Official Ansible role for the NGINX Management Suite
ansible-galaxy install nginxinc.nginx_management_suite