arillso.traefik

Ansible Role: traefik

Estado de Construcción Ansible Galaxy Rol de Ansible

Descripción

Traefik es un proxy inverso escrito en Go. Se puede usar en múltiples situaciones con muchos proveedores (Kubernetes, Swarm, ...). La versión 2 también es capaz de enrutar TCP.

Este rol configura traefik en un host como proxy inverso y balanceador de carga. Esto te permite usar un servidor como host para múltiples aplicaciones dockerizadas.

Nota: Este rol te permite usar un (1) servidor como host para muchas aplicaciones. Dependiendo de tu caso de uso, esto puede que no sea lo que buscas. Para servicios que necesitan ser altamente disponibles, considera usar Kubernetes u otros sistemas y configurar traefik allí.

Instalación

ansible-galaxy install arillso.traefik

Requisitos

  • Docker

Variables del Rol

Traefik v2.0 en adelante soporta configuración en yaml. Este rol utiliza esto para generar la configuración directamente a partir de las variables de ansible proporcionadas. Existen ciertas variables de configuración rápida que te permiten configurar una instancia simple, pero también hay la opción de configurar cada clave completamente tú mismo. La configuración rápida te permite:

  • Configurar un resolvedor de certificados basado en lets-encrypt
  • Configurar puntos de entrada estándar
  • Configurar un proveedor de Docker estándar

Las variables de configuración rápida están prefijadas con traefik_qs_.

Nombre Predeterminado Descripción
traefik_dir /etc/traefik dónde almacenar los datos de traefik
traefik_hostname "{{ inventory_hostname }}" el nombre de host de esta instancia
traefik_network traefik_proxy el nombre de la red generada
traefik_qs_send_anonymous_usage false si enviar estadísticas anónimas
traefik_qs_https false si configurar un punto final https
traefik_qs_https_redirect false si configurar una redirección a https
traefik_qs_https_le false si configurar letsencrypt usando tls (solo si https está habilitado)
traefik_qs_https_le_mail indefinido el correo electrónico para usar con letsencrypt (Requerido)
traefik_qs_log_level ERROR el nivel de registro a aplicar
traefik_container_name 'traefik' el nombre del contenedor
traefik_network_name 'traefik_proxy' el nombre de la red
traefik_network_ipam_subnet '172.16.1.0/24' subred
traefik_network_ipam_gateway '172.16.1.1' puerta de enlace
traefik_network_ipam_iprange '172.16.1.0/24' rango de ip
traefik_image 'traefik' la imagen utilizada
traefik_add_volumes [] volúmenes adicionales a montar
traefik_ports ['80:80', '443:443'] los puertos compartidos
traefik_labels {} etiquetas para establecer en el contenedor traefik

Los nombres predeterminados de las configuraciones generadas son:

  • Puntos de entrada:
    • http
    • https
  • Proveedores:
    • docker
  • Resolutores de certificados:
    • letsencrypt

Configuración Detallada

Como se mencionó anteriormente, este rol también te permite configurar traefik en detalle usando la configuración yaml de traefik. Las siguientes variables pueden ser utilizadas:

Nombre Predeterminado Descripción
traefik_confkey_global indefinido ver Documentación 📑
traefik_confkey_serversTransport indefinido ver Documentación 📑
traefik_confkey_entryPoints indefinido ver Documentación 📑
traefik_confkey_providers indefinido ver Documentación 📑
traefik_confkey_api indefinido ver Documentación 📑
traefik_confkey_metrics indefinido ver Documentación 📑
traefik_confkey_ping indefinido ver Documentación 📑
traefik_confkey_log indefinido ver Documentación 📑
traefik_confkey_accessLog indefinido ver Documentación 📑
traefik_confkey_tracing indefinido ver Documentación 📑
traefik_confkey_hostResolver indefinido ver Documentación 📑
traefik_confkey_certificatesResolvers indefinido ver Documentación 📑

Estas claves se combinan en la configuración después de la configuración de instalación rápida usando el filtro combine() en modo no recursivo. Esto te permite añadir opciones de configuración según las necesites. Si deseas sobrescribir los elementos de la instalación rápida, utiliza su clave (como se especifica arriba).

Compatibilidad con sbaerlocher/ansible.traefik

Este rol está destinado como una continuación del rol sbaerlocher/ansible.traefik para traefik v2. La mayoría de las variables establecidas para dicho rol seguirán funcionando en este rol, excepto por tres casos especiales, donde debes recrear una configuración personalizada usando las variables _confkey_. Estos se explican en las siguientes secciones.

Variables que requieren acción manual

traefik_configuration_file

Usar traefik_configuration_file no influye en tu instalación. La configuración de Traefik ha cambiado con la introducción de la v2 y no es compatible con versiones anteriores. Utiliza la documentación de Traefik para recrear tu configuración personalizada usando las variables _confkey_.

traefik_api

La forma en que se define la API en Traefik v2 te permite usar varias configuraciones diferentes. Por simplicidad, eliminamos la generación automática de una configuración de API, ya que no se puede combinar fácilmente con una configuración personalizada y podría causar efectos secundarios no deseados.

Para configurar una API simple y no segura en el puerto del contenedor 8080, utiliza la siguiente configuración (Nota: este ejemplo no es seguro, considera asegurar tu API para uso en producción):

traefik_confkey_api:
  insecure: true
  dashboard: true # usa esto para habilitar el panel
traefik_ports:
  - '80:80'
  - '443:443'
  - '8080:8080'

Esto configurará automáticamente un punto de entrada en el puerto 8080.

traefik_ping

De manera similar a la definición de API, la definición de ping permite configuración personalizada a través de múltiples claves de configuración diferentes, lo que hace que una configuración generada automáticamente no sea factible.

Sigue la documentación de configuración de Traefik sobre ping para encontrar la configuración que deseas aplicar. Como ejemplo, mira esta configuración, que expondrá el endpoint de ping en el puerto 8082:

traefik_confkey_entryPoints:
  ping:
    address: ':8082'
traefik_confkey_ping:
  entryPoint: 'ping'
traefik_ports:
  - '80:80'
  - '443:443'
  - '8082:8082'
Acerca del proyecto

Role to deploy traefik.

Instalar
ansible-galaxy install arillso.traefik
Licencia
mit
Descargas
484.3k
Propietario