arillso.traefik

Ansible Rolle: traefik

Build Status Ansible Galaxy Ansible Rolle

Beschreibung

Traefik ist ein Reverse-Proxy, der in Go geschrieben wurde. Er kann in verschiedenen Situationen mit vielen Anbietern (Kubernetes, Swarm, ...) verwendet werden. Version 2 ist auch in der Lage, TCP-Routing durchzuführen.

Diese Rolle richtet traefik auf einem Host als Reverse-Proxy und Lastenausgleich ein. Dadurch können Sie einen Server als Host für mehrere containerisierte Anwendungen verwenden.

Hinweis: Diese Rolle ermöglicht es Ihnen, einen (1) Server als Host für viele Anwendungen zu verwenden. Abhängig von Ihrem Anwendungsfall ist dies möglicherweise nicht das, was Sie suchen. Für Dienste, die hochverfügbar sein müssen, erwägen Sie die Verwendung von Kubernetes oder anderen Systemen und richten Sie dort traefik ein.

Installation

ansible-galaxy install arillso.traefik

Anforderungen

  • Docker

Rollenvariablen

Traefik v2.0 und höher unterstützt die YAML-Konfiguration. Diese Rolle nutzt dies, um die Konfiguration direkt aus den angegebenen Ansible-Variablen zu generieren. Es gibt bestimmte Schnell-Einrichtungsvariablen, mit denen Sie eine einfache Instanz einrichten können, aber es gibt auch die Möglichkeit, jeden Schlüssel vollständig selbst zu konfigurieren. Die Schnell-Einrichtung ermöglicht es Ihnen, Folgendes zu tun:

  • Einrichtung eines lets-encrypt basierten Zertifikat-Lösers
  • Einrichtung von Standard-Einstiegspunkten
  • Einrichtung eines Standard-Docker-Anbieters

Die Schnell-Einrichtungsvariablen beginnen mit traefik_qs_.

Name Standard Beschreibung
traefik_dir /etc/traefik wo die traefik-Daten gespeichert werden
traefik_hostname "{{ inventory_hostname }}" der Hostname dieser Instanz
traefik_network traefik_proxy der Name des generierten Netzwerks
traefik_qs_send_anonymous_usage false ob anonymisierte Nutzungsdaten gesendet werden sollen
traefik_qs_https false ob ein HTTPS-Endpunkt eingerichtet werden soll
traefik_qs_https_redirect false ob eine Umleitung zu HTTPS eingerichtet werden soll
traefik_qs_https_le false ob Letsencrypt mit TLS (nur wenn HTTPS aktiviert ist) eingerichtet werden soll
traefik_qs_https_le_mail undefiniert die E-Mail, die für Letsencrypt verwendet wird (Erforderlich)
traefik_qs_log_level ERROR die anzuwendende Protokollstufe
traefik_container_name 'traefik' der Containername
traefik_network_name 'traefik_proxy' der Netzwerkname
traefik_network_ipam_subnet '172.16.1.0/24' Subnetz
traefik_network_ipam_gateway '172.16.1.1' Gateway
traefik_network_ipam_iprange '172.16.1.0/24' IP-Bereich
traefik_image 'traefik' das verwendete Image
traefik_add_volumes [] zusätzliche Volumes, die eingebunden werden
traefik_ports ['80:80', '443:443'] die geteilten Ports
traefik_labels {} Labels, die auf dem Traefik-Container gesetzt werden.

Die Standardnamen der generierten Konfigurationen sind:

  • Einstiegspunkte:
    • http
    • https
  • Anbieter:
    • docker
  • Zertifikat-Löser:
    • letsencrypt

Detaillierte Konfiguration

Wie zuvor erwähnt, ermöglicht es diese Rolle auch, traefik tiefgehend zu konfigurieren, indem die traefik YAML-Konfiguration verwendet wird. Die folgenden Variablen können verwendet werden:

Name Standard Beschreibung
traefik_confkey_global undefiniert siehe Docs 📑
traefik_confkey_serversTransport undefiniert siehe Docs 📑
traefik_confkey_entryPoints undefiniert siehe Docs 📑
traefik_confkey_providers undefiniert siehe Docs 📑
traefik_confkey_api undefiniert siehe Docs 📑
traefik_confkey_metrics undefiniert siehe Docs 📑
traefik_confkey_ping undefiniert siehe Docs 📑
traefik_confkey_log undefiniert siehe Docs 📑
traefik_confkey_accessLog undefiniert siehe Docs 📑
traefik_confkey_tracing undefiniert siehe Docs 📑
traefik_confkey_hostResolver undefiniert siehe Docs 📑
traefik_confkey_certificatesResolvers undefiniert siehe Docs 📑

Diese Schlüssel werden nach der Schnell-Einrichtungs-Konfiguration unter Verwendung des combine() Filters im nicht rekursiven Modus zusammengeführt. Dies ermöglicht es Ihnen, Konfigurationsoptionen nach Bedarf hinzuzufügen. Wenn Sie die Schnell-Einrichtungsartikel überschreiben möchten, verwenden Sie deren Schlüssel (wie oben angegeben).

Kompatibilität mit sbaerlocher/ansible.traefik

Diese Rolle ist als Fortsetzung der sbaerlocher/ansible.traefik Rolle für traefik v2 gedacht. Die meisten der für diese Rolle gesetzten Variablen werden auch in dieser Rolle weiter funktionieren, mit drei Sonderfällen, in denen Sie eine benutzerdefinierte Konfiguration mit den _confkey_-Variablen neu erstellen müssen. Diese werden in den folgenden Abschnitten erklärt.

Variablen, die manuelle Aktionen benötigen

traefik_configuration_file

Die Verwendung von traefik_configuration_file hat keinen Einfluss auf Ihre Installation. Die Konfiguration von Traefik hat sich mit der Einführung von v2 geändert und ist nicht abwärtskompatibel. Verwenden Sie die Traefik-Dokumentation, um Ihre benutzerdefinierte Konfiguration unter Verwendung der _confkey_-Variablen neu zu erstellen.

traefik_api

Die Art und Weise, wie die API in Traefik v2 definiert ist, ermöglicht es Ihnen, mehrere verschiedene Konfigurationen zu verwenden. Um die Einfachheit willen haben wir die automatische Generierung einer API-Konfiguration fallen gelassen, da sie nicht einfach mit einer benutzerdefinierten Konfiguration zusammengeführt werden kann und zu unvorhergesehenen Nebenwirkungen führen könnte.

Um eine einfache, unsichere API auf dem Containerport 8080 einzurichten, verwenden Sie die folgende Konfiguration (Hinweis: dieses Beispiel ist unsicher, bitte erwägen Sie, Ihre API für den Einsatz in der Produktion zu sichern):

traefik_confkey_api:
  insecure: true
  dashboard: true # verwenden Sie dies, um das Dashboard zu aktivieren
traefik_ports:
  - '80:80'
  - '443:443'
  - '8080:8080'

Dies wird automatisch einen Einstiegspunkt auf Port 8080 konfigurieren.

traefik_ping

Ähnlich wie bei der API-Definition erlaubt die Ping-Definition eine benutzerdefinierte Konfiguration über mehrere verschiedene Konfigurationsschlüssel, was eine automatisierte Generierung der Konfiguration unmöglich macht.

Beachten Sie die Traefik-Dokumentationsdoku über Ping, um die Konfiguration, die Sie anwenden möchten, zu finden. Als Beispiel sehen Sie sich diese Konfiguration an, die den Ping-Endpunkt auf Port 8082 freigibt:

traefik_confkey_entryPoints:
  ping:
    address: ':8082'
traefik_confkey_ping:
  entryPoint: 'ping'
traefik_ports:
  - '80:80'
  - '443:443'
  - '8082:8082'
Über das Projekt

Role to deploy traefik.

Installieren
ansible-galaxy install arillso.traefik
Lizenz
mit
Downloads
484.3k
Besitzer