nginxinc.nginx

Ansible Galaxy Molecule CI/CD Licencia Estado del Proyecto: Activo – El proyecto ha alcanzado un estado estable y utilizable y está en desarrollo activo. Soporte de Comunidad Covenant de Contribuidor

👾 ¡Ayúdanos a mejorar el rol de Ansible para NGINX participando en nuestra encuesta! 👾

Rol de Ansible para NGINX

Este rol instala NGINX (NGINX Open Source), NGINX Plus, el Agente de NGINX y/o el agente NGINX Amplify en tu(s) host(s) objetivo.

[!IMPORTANTE] Este rol está en desarrollo activo. Pueden existir problemas no identificados y las variables del rol pueden cambiar a medida que se desarrolle.

Requisitos del Rol

NGINX

Dependiendo de tu caso de uso de NGINX en el objetivo, es posible que necesites obtener una licencia o clave/token API antes de poder usar el rol:

Producto Requisitos
NGINX Ninguno
NGINX Plus Licencia de NGINX Plus (tanto clave de licencia como archivos crt)
Agente de NGINX Un plano de control compatible y (opcionalmente) un token de plano de datos de la consola SaaS de NGINX One
NGINX Amplify Clave API encontrada en la consola SaaS de NGINX Amplify

Ansible

Si quieres usar este rol, necesitarás usar una versión soportada de Ansible core y Jinja2, así como algunas colecciones de Ansible.

Para facilidad de uso, puedes instalar y/o actualizar Ansible core, Jinja2 y las colecciones mencionadas ejecutando los siguientes cuatro comandos en tu host de 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

Esto también asegurará que despliegues/ejecutes este rol con una versión completamente probada de los paquetes/colecciones mencionadas.

Ansible core

  • Este rol se desarrolla y prueba con versiones de Ansible core y Python que son mantenidas.

    Nota: Ansible 2.18 ya no soporta el módulo yum y, por lo tanto, no es compatible con este rol hasta que Amazon Linux 2 llegue a su fecha de fin de soporte.

  • Al usar Ansible core, también necesitarás instalar las siguientes colecciones de Ansible:

    ---
    collections:
      - name: ansible.posix
        version: 1.5.4
      - name: community.general
        version: 9.2.0
      - name: community.crypto # Solo necesario si planeas instalar NGINX Plus
        version: 2.21.1
      - name: community.docker # Solo necesario si planeas usar Molecule (ver más abajo)
        version: 3.11.0
    
  • 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 objetivo.

  • Las instrucciones sobre cómo instalar Ansible core se pueden encontrar en la documentación de Ansible.

  • Las instrucciones sobre cómo instalar colecciones de Ansible se pueden encontrar en la guía de colecciones de Ansible.

[!SUGERENCIA] Alternativamente, puedes instalar la distribución comunitaria de Ansible (lo que aún se conoce como Ansible -- en lugar de Ansible core) si no quieres gestionar colecciones individuales.

Jinja2

  • Este rol usa plantillas Jinja2. Ansible core instala Jinja2 por defecto, pero dependiendo de tu ruta de instalación y/o actualización, podrías estar ejecutando una versión desactualizada de Jinja2. 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 la página web de Jinja2.

Suite de Pruebas (Opcional)

Si quieres contribuir a este rol, también necesitarás instalar Ansible Lint y Molecule.

Ansible Lint (Opcional)

  • Ansible Lint se utiliza para revisar el rol en busca de mejores prácticas de Ansible y posibles problemas de Ansible/YAML.

  • Las instrucciones sobre cómo instalar Ansible Lint se pueden encontrar en la página web de Ansible Lint.

  • Una vez instalado, usar Ansible Lint es tan fácil como ejecutar:

    ansible-lint
    
  • Para facilidad de uso, puedes instalar y/o actualizar Ansible Lint ejecutando el siguiente comando en tu host de Ansible:

    pip install -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/main/.github/workflows/requirements/requirements_ansible_lint.txt
    

Molecule (Opcional)

  • Molecule se utiliza para probar las diversas funcionalidades del rol.

  • Las instrucciones sobre cómo instalar Molecule se pueden encontrar en la página web de Molecule. También necesitarás instalar el paquete de plugins de Molecule y el SDK de Docker para Python.

  • Para ejecutar cualquiera de las pruebas de Molecule de NGINX Plus, primero debes copiar tu licencia de NGINX Plus al directorio files/license del rol.

    Alternativamente, puedes agregar tu certificado y clave de repositorio de NGINX Plus 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
    
  • Para facilidad de uso, puedes instalar y/o actualizar Molecule, el paquete de plugins de Molecule y el SDK de Docker para Python ejecutando el siguiente comando en tu host de Ansible:

    pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/main/.github/workflows/requirements/requirements_molecule.txt
    

Instalación del Rol

Este rol se puede instalar a través de Ansible Galaxy (el mercado comunitario de Ansible) o clonando este repositorio. Una vez instalado, necesitarás incluir el rol en tu playbook de Ansible usando la palabra clave roles, el módulo import_role o el módulo include_role.

Ansible Galaxy

Para instalar la última versión estable del rol en tu sistema, usa:

ansible-galaxy install nginxinc.nginx

Alternativamente, si ya has instalado el rol, puedes actualizarlo a la última versión usando:

ansible-galaxy install -f nginxinc.nginx

Para usar el rol, incluye la siguiente tarea en tu playbook:

- name: Instalar NGINX
  ansible.builtin.include_role:
    name: nginxinc.nginx

Git

Para obtener el último commit de la versión más reciente del rol desde GitHub, usa:

git clone https://github.com/nginxinc/ansible-role-nginx.git

Para usar el rol, incluye la siguiente tarea en tu playbook:

- name: Instalar NGINX
  ansible.builtin.include_role:
    name: <ruta/al/repositorio> # por ejemplo, <roles/ansible-role-nginx> si clonas el repositorio dentro del directorio de roles de tu proyecto

Plataformas

El rol de Ansible para NGINX es compatible con casi todas las plataformas que son compatibles con NGINX Open Source, NGINX Plus, el Agente de NGINX y el agente 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)

Agente de NGINX

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)

Agente NGINX Amplify

Amazon Linux:
  - 2
Debian:
  - buster (10)
  - bullseye (11)
Red Hat:
  - 8
  - 9
Ubuntu:
  - bionic (18.04)
  - focal (20.04)
  - jammy (22.04)

[!ADVERTENCIA] Bajo tu propio riesgo, también puedes usar este rol para compilar NGINX Open Source desde el código fuente, instalar NGINX Open Source en plataformas "compatibles" pero no soportadas, instalar NGINX desde el gestor de paquetes de tu distribución, o instalar NGINX Open Source en sistemas BSD.

Variables del Rol

Este rol tiene múltiples variables. Las descripciones y valores predeterminados para todas estas variables se pueden encontrar en el directorio defaults/main/ en los siguientes archivos:

Nombre Descripción
main.yml Variables de instalación de NGINX
agent.yml Variables de instalación del Agente de NGINX
amplify.yml Variables de instalación del agente NGINX Amplify
bsd.yml Variables de instalación para BSD
logrotate.yml Variables de configuración de Logrotate
selinux.yml Variables de configuración de SELinux
systemd.yml Variables de configuración de systemd

De manera similar, las descripciones y valores predeterminados para variables preestablecidas se pueden encontrar en el directorio vars/ en los siguientes archivos:

Nombre Descripción
main.yml Lista de plataformas, módulos y variables de instalación de Linux soportadas para NGINX

Ejemplos de Playbooks

Ejemplos de playbooks funcionales se pueden encontrar en la carpeta molecule/ en los siguientes archivos:

Nombre Descripción
agent/converge.yml Instalar y configurar el Agente de NGINX para conectarse al plano de control SaaS de NGINX One en F5 Distributed Cloud
amplify/converge.yml Instalar y configurar el agente NGINX Amplify
default/converge.yml Instalar una versión específica de NGINX, instalar varios módulos soportados por NGINX, ajustar systemd y configurar logrotate
distribution/converge.yml Instalar NGINX desde el repositorio de paquetes de la distribución en lugar del repositorio de paquetes de NGINX
downgrade/converge.yml Revertir a una versión específica de NGINX
downgrade-plus/converge.yml Revertir a una versión específica de NGINX Plus
plus/converge.yml Instalar NGINX Plus y varios módulos soportados por NGINX Plus
source/converge.yml Instalar NGINX desde el código fuente
stable/converge.yml Instalar NGINX utilizando la última versión estable
uninstall/converge.yml Desinstalar NGINX
uninstall-plus/converge.yml Desinstalar NGINX Plus
upgrade/converge.yml Actualizar NGINX
upgrade-plus/converge.yml Actualizar NGINX Plus
version/converge.yml Instalar una versión específica de NGINX y varios módulos de NGINX

[!NOTA] Si instalas este repositorio a través de Ansible Galaxy, necesitarás reemplazar la variable include_role en los ejemplos de playbooks de ansible-role-nginx a nginxinc.nginx.

Otras Colecciones y Roles de Ansible para 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 para la configuración de NGINX aquí.

Puedes encontrar el rol de Ansible para NGINX App Protect para instalar y configurar el WAF de NGINX App Protect y NGINX App Protect DoS aquí.

Puedes encontrar el rol de Ansible para NGINX Unit para instalar NGINX Unit aquí.

Licencia

Licencia Apache, Versión 2.0

Información del Autor

Alessandro Fael Garcia

Grzegorz Dzien

Tom Gamull

© F5, Inc. 2018 - 2024

Acerca del proyecto

Official Ansible role for installing NGINX

Instalar
ansible-galaxy install nginxinc.nginx
Licencia
apache-2.0
Descargas
3.5M
Propietario
Welcome to this part of the NGINX open source world. We're constantly expanding our ecosystem designed to help you create the best web and app experience around