inhumantsar.dockerautoproxy
dockerautoproxy
¿Qué es?
Utiliza la imagen de Docker jwilder/nginx-proxy para automatizar la configuración de un proxy inverso en Docker Swarm.
¿Cómo funciona?
Uso del Rol
La imagen está diseñada para configurarse de manera dinámica, así que no hay mucho que hacer de antemano. Consulta defaults/main.yml.
Por defecto, se utiliza la imagen alpine; cámbiala a latest para usar una imagen de debian:jesse.
Crea una red llamada nginx_proxy_net, a la que deben unirse tus contenedores que van a ser proxy.
Uso del Proxy Nginx
Los contenedores que necesitan ser proxied deben hacer dos cosas: exponer el puerto que se va a proxear y especificar un host virtual.
Los puertos se pueden especificar en el Dockerfile usando EXPOSE, en la línea de comandos usando --expose, o en el archivo de Docker Compose usando expose.
Los hosts virtuales deben especificarse en una variable de entorno llamada VIRTUAL_HOST.
Uso Avanzado
Configuraciones nginx personalizadas
Se pueden cargar montando una ruta del host que contenga archivos de configuración de nginx utilizando la variable dockerautoproxy_config_path. La ruta se creará si no existe ya en el host.
Certificados SSL
Los certificados SSL se pueden generar automáticamente o especificar manualmente. Por defecto, se almacenan en un volumen de datos compartido entre los contenedores. Puedes usar dockerautoproxy_certs_path para montar una ruta en el host donde almacenarlos.
Para generar certificados automáticamente, establece la variable Ansible dockerautoproxy_ssl_companion en true. Esto lanzará un segundo contenedor que manejará la generación de certificados SSL con Let's Encrypt. Para habilitar un servicio para esto, establece las variables de entorno del contenedor LETSENCRYPT_HOST y LETSENCRYPT_EMAIL. Por ejemplo:
$ docker run -d \
--name example-app \
-e "VIRTUAL_HOST=example.com,www.example.com,mail.example.com" \
-e "LETSENCRYPT_HOST=example.com,www.example.com,mail.example.com" \
-e "[email protected]" \
tutum/apache-php
Sets up a dynamic Nginx reverse proxy on Docker Swarm
ansible-galaxy install inhumantsar.dockerautoproxy