nginxinc.nginx_management_suite

Molecule CI/CD License

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

  1. Archivos de licencia de la Suite de Gestión de NGINX
  2. 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.yml se muestra aquí
  • 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 become de 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/license del 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.

  1. Usa el siguiente fragmento en tu requirement.yml.

    roles:
      - src: https://github.com/nginxinc/ansible-role-nginx-management-suite.git
        version: main
    
  2. Usa git clone https://github.com/nginxinc/ansible-role-nginx-management-suite.git para obtener el último commit de la rama main del 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

Licencia Apache, Versión 2.0

Información del Autor

John Wong

Alessandro Fael Garcia

© F5, Inc. 2023

Acerca del proyecto

Official Ansible role for the NGINX Management Suite

Instalar
ansible-galaxy install nginxinc.nginx_management_suite
Licencia
apache-2.0
Descargas
2.1k
Propietario
We're constantly expanding our ecosystem to help you create the best web and app experience around