artem_shestakov.nginx

Rol de Ansible Nginx

========= Build

Rol de Ansible para instalar Nginx en sistemas operativos Debian/Red Hat.

Requisitos


Ninguno

Variables


Este rol utiliza tres tipos de variables. Las primeras dos dependen del tipo de instalación. La tercera son variables generales independientemente de la elección del tipo de instalación.

Variables generales

  • install_from - Tipo de instalación de Nginx. [source | repo]. Valor por defecto: repo
  • nginx_http_add - Lista de parámetros adicionales que se agregarán a la sección http del archivo de configuración de Nginx. Valor por defecto: []
  • nginx_stream_add - Lista de parámetros adicionales que se agregarán a la sección stream del archivo de configuración de Nginx. Valor por defecto: []
  • ssl_cert_path - Directorio para los certificados SSL que usará Nginx. Valor por defecto: \etc\nginx\ssl

Servidor web

  • nginx_virtual_servers - Lista de servidores virtuales. Valor por defecto: []
    • listen - Especifica la dirección IP y el puerto (o socket de dominio Unix y ruta) en el que el servidor escucha las solicitudes
    • server_name - Lista de nombres de un servidor virtual
    • locations - Lista de localizaciones
      • location - Configuración dependiendo de una URI de solicitud.
      • params - Establece parámetros para la ubicación. Por ejemplo proxy_pass, return, rewrite, etc.

Balanceo de carga TCP y UDP

  • tcp_udp_nlb - Lista de diccionarios de servidores backend (upstreams) para el balanceo de carga TCP y UDP con campos
    • name - Nombre del upstream
    • listen - Puerto para escuchar el tráfico entrante en el proxy Nginx
    • servers - Lista de servidores backend
  • stub_status - Si es verdadero, el rol configurará la herramienta de monitoreo de Nginx mediante ngx_http_stub_status_module. Valor por defecto: false
  • stub_status_settings - Diccionario de configuraciones de stub_status con campos
    • listen - Establece la dirección y el puerto para IP, o la ruta para un socket de dominio UNIX donde el servidor aceptará solicitudes. Valor por defecto: 127.0.0.1:80
    • server_name - Establece nombres de un servidor virtual. Valor por defecto: 127.0.0.1
    • location - Establece configuración dependiendo de una URI de solicitud. Valor por defecto: /nginx_status

SSL

  • proxy_ssl - Habilita el protocolo SSL/TLS para conexiones a un servidor proxied.
  • proxy_ssl_certificate - Especifica un archivo con el certificado en formato PEM usado para autenticación a un servidor HTTPS proxied.
  • proxy_ssl_certificate_key - Especifica un archivo con la clave secreta en formato PEM usada para autenticación a un servidor HTTPS proxied.
  • proxy_ssl_ciphers - Especifica los cifrados habilitados para conexiones a un servidor proxied. Los cifrados se especifican en el formato entendido por la biblioteca OpenSSL.
  • ssl_certificate - Especifica un archivo con la clave secreta en formato PEM para el servidor virtual dado.
  • ssl_certificate_key - Especifica un archivo con la clave secreta en formato PEM usada para autenticación a un servidor proxied.

Variables de instalación desde el repositorio

Variables de instalación desde fuente

  • nginx_with_modules - Lista de módulos de Nginx no predeterminados. La lista de módulos está aquí. Valor por defecto: []

Ejemplo de Playbook

---
- name: Instalar la aplicación Nginx
  hosts: all
  remote_user: vagrant
  become: true
  roles:
    - artem_shestakov.nginx
  vars:
    - install_from: source
    - nginx_with_modules:
        - --with-file-aio 
        - --with-ipv6 
        - --with-http_ssl_module
        - --with-http_v2_module 
        - --with-http_realip_module 
        - --with-http_addition_module 
        - --with-http_xslt_module=dynamic  
        - --with-http_image_filter_module=dynamic
        - --with-http_sub_module 
        - --with-http_dav_module 
        - --with-http_flv_module 
        - --with-http_mp4_module 
        - --with-http_gunzip_module 
        - --with-http_gzip_static_module 
        - --with-http_random_index_module 
        - --with-http_secure_link_module 
        - --with-http_degradation_module 
        - --with-http_slice_module 
        - --with-http_stub_status_module 
        - --with-http_perl_module=dynamic 
        - --with-http_auth_request_module 
        - --with-mail=dynamic 
        - --with-mail_ssl_module  
        - --with-stream=dynamic
        - --with-stream_ssl_module 
        - --with-debug
    - tcp_udp_nlb:
        - name: example
          listen: 
            - 192.168.1.1:443
            - 192.168.1.2:443
          servers:
            - 10.79.1.196:443
        - name: example2
          listen: 
            - 10002
          servers:
            - 10.79.1.203:5601

Copiar certificados al servidor Nginx

  1. Coloca tus certificados en el directorio
  2. Establecer variables
  • copy_ssl_certs - verdadero si necesitas copiar tus certificados de la máquina local al servidor Nginx remoto
  • user_certs_path - lista de directorios con tus certificados SSL que necesitan ser copiados a Nginx. Valor por defecto: ['./files/ssl/*']

Licencia

BSD, MIT

Información del autor

Artem Shestakov (artem.s.shestakov@gmail.com)

Acerca del proyecto

Ansible role to install Nginx on Debian/Red Hat OS family.

Instalar
ansible-galaxy install artem_shestakov.nginx
Licencia
Unknown
Descargas
219
Propietario