nginxinc.nginx_config
👾 Ayuda a mejorar el rol de configuración de NGINX en Ansible participando en nuestra encuesta! 👾
Rol de Configuración de NGINX en Ansible
Este rol configura NGINX Open Source y NGINX Plus en tu host objetivo.
[!IMPORTANTE] Este rol todavía está en desarrollo activo. Puede haber problemas no identificados y las variables del rol pueden cambiar a medida que avanza el desarrollo.
Requisitos del Rol
Ansible
Si deseas usar este rol, necesitarás una versión compatible de Ansible core y Jinja2, así como algunas colecciones de Ansible.
Para facilitar su 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-config/main/.github/workflows/requirements/requirements_ansible.txt
curl -O https://raw.githubusercontent.com/nginxinc/ansible-role-nginx-config/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 estás implementando/ejecutando este rol con una versión completamente probada de los paquetes/colecciones mencionados.
Ansible core
Este rol se desarrolló y probó con versiones mantenidas de Ansible core y Python.
Al usar Ansible core, también deberás instalar las siguientes colecciones de Ansible:
--- collections: - name: ansible.posix version: 1.5.4 - name: community.general version: 9.0.1 - name: community.docker # Solo necesario si planeas usar Molecule (ver más abajo) version: 3.10.3
Las instrucciones para instalar Ansible core se pueden encontrar en la documentación de Ansible.
Las instrucciones para instalar colecciones de Ansible se pueden encontrar en la guía de colecciones de Ansible.
[!CONSEJO] Alternativamente, puedes instalar la distribución de la comunidad de Ansible (lo que aún se conoce como Ansible -- en lugar de Ansible core) si no deseas gestionar colecciones individuales.
Jinja2
- Este rol utiliza plantillas de 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 el sitio web de Jinja2.
Suite de Pruebas (Opcional)
Si deseas contribuir a este rol, también necesitarás instalar Ansible Lint y Molecule.
Ansible Lint (Opcional)
Ansible Lint se utiliza para verificar el rol tanto para las mejores prácticas de Ansible como para posibles problemas de Ansible/YAML.
Las instrucciones sobre cómo instalar Ansible Lint se pueden encontrar en el sitio web de Ansible Lint.
Una vez instalado, usar Ansible Lint es tan fácil como ejecutar:
ansible-lint
Para facilitar su 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-config/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 el sitio web de Molecule. También necesitarás instalar el paquete de plugins de Molecule y el SDK de Python para Docker.
Para ejecutar las pruebas de configuración de NGINX Plus/App Protect con Molecule, debes copiar tu licencia de NGINX Plus/App Protect al directorio Molecule
common/files/license
.Alternativamente, puedes agregar tu certificado y clave de repositorio de NGINX Plus/App Protect 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 facilitar su uso, puedes instalar y/o actualizar Molecule, el paquete de plugins de Molecule y el SDK de Python para Docker ejecutando el siguiente comando en tu host de Ansible:
pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx-config/main/.github/workflows/requirements/requirements_molecule.txt
Instalación del Rol
Este rol se puede instalar a través de Ansible Galaxy (el mercado de la comunidad de Ansible) o clonando este repositorio. Una vez instalado, deberás incluir el rol en tu playbook de Ansible utilizando 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_config
Alternativamente, si ya has instalado el rol, puedes actualizarlo a la última versión usando:
ansible-galaxy install -f nginxinc.nginx_config
Para usar el rol, incluye la siguiente tarea en tu playbook:
- name: Configurar NGINX
ansible.builtin.include_role:
name: nginxinc.nginx_config
Git
Para obtener el último commit de desarrollo del rol desde GitHub, usa:
git clone https://github.com/nginxinc/ansible-role-nginx-config.git
Para usar el rol, incluye la siguiente tarea en tu playbook:
- name: Configurar NGINX
ansible.builtin.include_role:
name: <ruta/al/repositorio> # e.g. <roles/ansible-role-nginx-config> si clonas el repo dentro del directorio de roles de tu proyecto
Plataformas
El rol de configuración de NGINX en Ansible es compatible con todas las plataformas soportadas por NGINX Open Source y NGINX Plus.
[!NOTA] Debes poder usar este rol para configurar cualquier instalación de NGINX -- donde/como sea que se haya instalado -- bajo tu propio riesgo. Cualquier posible error con el rol relacionado con métodos/plataformas de instalación no soportados se abordará de la mejor manera posible y podría ser desestimado de plano.*
Variables del Rol
Este rol tiene múltiples variables. Las descripciones y valores predeterminados de todas estas variables se pueden encontrar en el defaults/main/
directorio en los siguientes archivos:
Nombre | Descripción |
---|---|
main.yml |
Variables de configuración simple de NGINX |
selinux.yml |
Configura SELinux para permitir las conexiones necesarias a tu configuración de NGINX |
template.yml |
Variables de plantilla de configuración de NGINX |
upload.yml |
Variables de carga de configuración/HTML/SSL de NGINX |
Ejemplos de Playbooks
Ejemplos de playbooks funcionales se pueden encontrar en la molecule/
directorio en los siguientes archivos:
Nombre | Descripción |
---|---|
api/converge.yml |
Configura la API de NGINX Plus y el panel de métricas en vivo |
cleanup_config/converge.yml |
Limpia una configuración de NGINX |
complete/converge.yml |
Prueba que todas las directivas de NGINX estén correctamente plantilladas |
complete_plus/converge.yml |
Prueba que todas las directivas específicas de NGINX Plus estén correctamente plantilladas |
default/converge.yml |
Configura NGINX con una configuración lo más cercana posible a la configuración predeterminada |
push_config/converge.yml |
Envía una configuración de NGINX preexistente desde tu sistema a tu instancia de NGINX |
reverse_proxy/converge.yml |
Configura NGINX como un proxy inverso entre dos servidores web |
stub_status/converge.yml |
Configura las métricas de estado de stub de NGINX Open Source |
web_server/converge.yml |
Configura NGINX como un servidor web |
[!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-config
anginxinc.nginx_config
.
Otras Colecciones y Roles de NGINX en Ansible
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 NGINX para instalar NGINX OSS y NGINX Plus aquí.
Puedes encontrar el rol de Ansible NGINX App Protect para instalar y configurar NGINX App Protect WAF y NGINX App Protect DoS aquí.
Puedes encontrar el rol de Ansible NGINX Unit para instalar NGINX Unit aquí.
Licencia
Información del Autor
© F5, Inc. 2020 - 2024
Official Ansible role for configuring NGINX
ansible-galaxy install nginxinc.nginx_config