arillso.traefik
Ansible Rolle: traefik
- Beschreibung
- Installation
- Anforderungen
- Rollenvariablen
- Kompatibilität mit sbaerlocher/ansible.traefik
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'
ansible-galaxy install arillso.traefik