arillso.traefik

Rôle Ansible : traefik

Statut de construction Ansible Galaxy Rôle Ansible

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'
À propos du projet

Role to deploy traefik.

Installer
ansible-galaxy install arillso.traefik
Licence
mit
Téléchargements
484.3k
Propriétaire