arillso.traefik
Rôle Ansible : traefik
Description
Traefik est un proxy inverse écrit en Go. Il peut être utilisé dans de nombreuses situations avec de nombreux fournisseurs (Kubernetes, Swarm, ...). La version 2 est également capable de gérer le routage TCP.
Ce rôle configure traefik sur un hôte en tant que proxy inverse et équilibreur de charge. Cela vous permet d'utiliser un serveur comme hôte pour plusieurs applications dockerisées.
Remarque : Ce rôle vous permet d'utiliser un (1) serveur comme hôte pour de nombreuses applications. Selon votre cas d'utilisation, cela pourrait ne pas être ce que vous recherchez. Pour des services nécessitant une haute disponibilité, envisagez d'utiliser Kubernetes ou d'autres systèmes et configurez traefik là-bas.
Installation
ansible-galaxy install arillso.traefik
Exigences
- Docker
Variables du rôle
Traefik à partir de la version 2.0 prend en charge la configuration yaml. Ce rôle utilise cela pour générer la configuration directement à partir des variables ansible données. Il existe certaines variables de configuration rapide qui vous permettent de configurer une instance simple, mais vous avez également la possibilité de configurer entièrement chaque clé vous-même. La configuration rapide vous permet de :
- Installer un résolveur de certificats basé sur lets-encrypt
- Configurer des points d'entrée standard
- Configurer un fournisseur Docker standard
Les variables de configuration rapide sont préfixées par traefik_qs_
.
Nom | Par défaut | Description |
---|---|---|
traefik_dir |
/etc/traefik |
où stocker les données de traefik |
traefik_hostname |
"{{ inventory_hostname }}" |
le nom d'hôte de cette instance |
traefik_network |
traefik_proxy |
le nom du réseau généré |
traefik_qs_send_anonymous_usage |
false |
si envoyer des données d'utilisation anonymes |
traefik_qs_https |
false |
si configurer un point de terminaison https |
traefik_qs_https_redirect |
false |
si configurer une redirection vers https |
traefik_qs_https_le |
false |
si configurer letsencrypt en utilisant tls (uniquement si https est activé) |
traefik_qs_https_le_mail |
indéfini | l'email à utiliser pour letsencrypt (Requis) |
traefik_qs_log_level |
ERROR |
le niveau de journal à appliquer |
traefik_container_name |
'traefik' |
le nom du conteneur |
traefik_network_name |
'traefik_proxy' |
le nom du réseau |
traefik_network_ipam_subnet |
'172.16.1.0/24' |
sous-réseau |
traefik_network_ipam_gateway |
'172.16.1.1' |
passerelle |
traefik_network_ipam_iprange |
'172.16.1.0/24' |
plage IP |
traefik_image |
'traefik' |
l'image utilisée |
traefik_add_volumes |
[] |
volumes supplémentaires à monter |
traefik_ports |
['80:80', '443:443'] |
les ports partagés |
traefik_labels |
{} |
étiquettes à définir sur le conteneur traefik |
Les noms par défaut des configurations générées sont :
- Points d'entrée :
http
https
- Fournisseurs :
docker
- Résolveurs de certificats :
letsencrypt
Configuration avancée
Comme mentionné précédemment, ce rôle vous permet également de configurer traefik en profondeur en utilisant la configuration yaml de traefik. Les variables suivantes peuvent être utilisées :
Nom | Par défaut | Description |
---|---|---|
traefik_confkey_global |
indéfini | voir Docs 📑 |
traefik_confkey_serversTransport |
indéfini | voir Docs 📑 |
traefik_confkey_entryPoints |
indéfini | voir Docs 📑 |
traefik_confkey_providers |
indéfini | voir Docs 📑 |
traefik_confkey_api |
indéfini | voir Docs 📑 |
traefik_confkey_metrics |
indéfini | voir Docs 📑 |
traefik_confkey_ping |
indéfini | voir Docs 📑 |
traefik_confkey_log |
indéfini | voir Docs 📑 |
traefik_confkey_accessLog |
indéfini | voir Docs 📑 |
traefik_confkey_tracing |
indéfini | voir Docs 📑 |
traefik_confkey_hostResolver |
indéfini | voir Docs 📑 |
traefik_confkey_certificatesResolvers |
indéfini | voir Docs 📑 |
Ces clés sont fusionnées dans la configuration après la configuration de mise en place rapide utilisant le filtre combine()
en mode non récursif. Cela vous permet d'ajouter des options de configuration au fur et à mesure de vos besoins. Si vous souhaitez écraser les éléments de la mise en place rapide, utilisez leur clé (comme spécifié ci-dessus).
Compatibilité avec sbaerlocher/ansible.traefik
Ce rôle est destiné à être une continuation du rôle sbaerlocher/ansible.traefik pour traefik v2. La plupart des variables définies pour ce rôle continueront de fonctionner dans ce rôle, sauf pour trois cas particuliers, où vous devez recréer une configuration personnalisée en utilisant les variables _confkey_
. Ces cas sont expliqués dans les sections suivantes.
Variables nécessitant une action manuelle
traefik_configuration_file
L'utilisation de traefik_configuration_file
n'a aucune influence sur votre installation. La configuration de Traefik a changé avec l'introduction de la version 2 et n'est pas compatible avec les versions précédentes. Utilisez la documentation de Traefik pour recréer votre configuration personnalisée en utilisant les variables _confkey_
.
traefik_api
La façon dont l'API est définie dans Traefik v2 vous permet d'utiliser plusieurs configurations différentes. Pour des raisons de simplicité, nous avons abandonné la génération automatique d'une configuration API, car elle n'est pas simplement fusionnable avec une configuration personnalisée et pourrait entraîner des effets secondaires imprévus.
Pour configurer une API simple et non sécurisée sur le port 8080
du conteneur, utilisez la configuration suivante (Remarque : cet exemple n'est pas sécurisé, pensez à sécuriser votre API pour une utilisation en production) :
traefik_confkey_api:
insecure: true
dashboard: true # utilisez ceci pour activer le tableau de bord
traefik_ports:
- '80:80'
- '443:443'
- '8080:8080'
Cela configurera automatiquement un point d'entrée sur le port 8080
.
traefik_ping
Semblable à la définition de l'API, la définition de ping permet une configuration personnalisée sur plusieurs clés de configuration différentes, rendant une configuration générée automatiquement impossible.
Suivez les documents de configuration de Traefik concernant le ping pour trouver la configuration que vous souhaitez appliquer. Par exemple, regardez cette configuration, qui exposera le point de ping sur le port 8082
:
traefik_confkey_entryPoints:
ping:
address: ':8082'
traefik_confkey_ping:
entryPoint: 'ping'
traefik_ports:
- '80:80'
- '443:443'
- '8082:8082'
ansible-galaxy install arillso.traefik