nginxinc.nginx
👾 ¡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óduloyum
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 deansible-role-nginx
anginxinc.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
Información del Autor
© F5, Inc. 2018 - 2024
Official Ansible role for installing NGINX
ansible-galaxy install nginxinc.nginx