practical-ansible.nginx_docker
Nginx-docker para ansible
Usa Ansible para desplegar proyectos de Docker en Nginx con o sin https. Este rol no se preocupa por el lenguaje que usaste para crear tu aplicación. Está creado para ser utilizado con herramientas de integración y despliegue continuo.
Características
- Construye o utiliza una imagen de docker preconstruida
- No requiere un registro de docker
- Configura https a través de nginx_project
- Reemplaza automáticamente versiones antiguas a través de project_name
Requisitos
- Usuario objetivo con derechos para configurar nginx
- Usuario objetivo con derechos para ejecutar docker
Instalación
ansible-galaxy install practical-ansible.nginx_docker
Ejemplo de playbook
Este sería el playbook más común
---
- name: Desplegar en contenedor Docker de prueba
hosts: all
roles:
- role: practical-ansible.nginx_docker
vars:
admin_email: '[email protected]'
image_local: 'test_app.tar'
project_port: '3000'
project_name: 'mi-aplicación'
project_version: '0.1.0'
server_names: 'localhost,www.localhost'
use_ssl: true
env:
print_this: 'Prueba de despliegue: X Æ A-12'
Puedes encontrar más ejemplos en el directorio tests.
Ejemplo de CI
Hay más ejemplos de configuración.
Manual de referencia
Usa esto para evitar el Síndrome de Agotamiento al desplegar tu aplicación envuelta en Docker a nginx.
Índice
Variables por defecto
client_max_body_size
Tamaño máximo de archivo que se puede subir en Nginx. Valor definido por la documentación de nginx
Valor por defecto
client_max_body_size: 1M
env
Diccionario de variables de entorno que se pasarán al contenedor de docker.
Valor por defecto
env:
nginx_docker: yes
Ejemplo de uso
env:
PORT: 80
SECRET_TOKEN: xa2z3ik6
image_local
Ruta a la imagen de docker extraída. Cuando está vacía, el rol intentará construir la imagen en el host local antes de subir la imagen al remoto. Se espera que el Dockerfile esté presente en el mismo directorio que el playbook.
Valor por defecto
image_local: ''
Ejemplo de uso
image: './dist/mi-aplicación.tar'
image_name
Nombre de la imagen que se extraerá del repositorio de docker.
Valor por defecto
image_name: ''
Ejemplo de uso
image: 'requarks/wiki'
network_name
Nombre de la red de docker usada por este contenedor. El rol la creará si es necesario.
Valor por defecto
network_name: practical-ansible
Ejemplo de uso
network_name: 'red-totalmente-separada'
project_port
Número de puerto interno del contenedor. El rol mapeará este puerto desde docker al proxy de nginx.
Valor por defecto
project_port: 80
Ejemplo de uso
project_port: 3000
Dependencias
- {'role': 'practical-ansible.nginx_project'}
Licencia
MIT
Autor
Pavel Žák
Deploy your Docker project to Nginx with minimal config
ansible-galaxy install practical-ansible.nginx_docker