arillso.traefik

Rola Ansible: traefik

Status budowy Ansible Galaxy Rola Ansible

Opis

Traefik to odwrotny proxy napisany w Go. Może być używany w różnych sytuacjach z wieloma dostawcami (Kubernetes, Swarm, ...). Wersja 2 obsługuje również routowanie TCP.

Ta rola konfiguruje traefik na hoście jako odwrotny proxy i balansujący obciążenie. Dzięki temu możesz wykorzystać jeden serwer jako host dla wielu aplikacji działających w kontenerach Docker.

Uwaga: Ta rola pozwala używać jednego (1) serwera jako hosta dla wielu aplikacji. W zależności od Twojego przypadku, może to nie być to, czego szukasz. Dla usług wymagających wysokiej dostępności rozważ użycie Kubernetes lub innych systemów, a następnie skonfiguruj tam traefik.

Instalacja

ansible-galaxy install arillso.traefik

Wymagania

  • Docker

Zmienne roli

Traefik od wersji 2.0 obsługuje konfigurację w formacie yaml. Ta rola wykorzystuje to do generowania konfiguracji bezpośrednio z podanych zmiennych ansible. Istnieją pewne zmienne pozwalające na szybkie skonfigurowanie podstawowej instancji, ale także opcja pełnej konfiguracji każdej zmiennej w zależności od potrzeb. Szybka konfiguracja pozwala na:

  • Skonfigurowanie rozwiązywacza certyfikatów Let's Encrypt
  • Skonfigurowanie standardowych entrypointów
  • Skonfigurowanie standardowego dostawcy Docker

Zmiennie szybkiej konfiguracji mają prefiks traefik_qs_.

Nazwa Domyślnie Opis
traefik_dir /etc/traefik gdzie przechowywać dane traefik
traefik_hostname "{{ inventory_hostname }}" nazwa hosta tej instancji
traefik_network traefik_proxy nazwa wygenerowanej sieci
traefik_qs_send_anonymous_usage false czy wysyłać anonimowe dane użycia
traefik_qs_https false czy skonfigurować punkt końcowy https
traefik_qs_https_redirect false czy skonfigurować przekierowanie do https
traefik_qs_https_le false czy skonfigurować Let's Encrypt przy użyciu TLS (tylko jeśli https jest włączony)
traefik_qs_https_le_mail undefined adres e-mail do użycia w Let's Encrypt (wymagany)
traefik_qs_log_level ERROR poziom logowania
traefik_container_name 'traefik' nazwa kontenera
traefik_network_name 'traefik_proxy' nazwa sieci
traefik_network_ipam_subnet '172.16.1.0/24' podsieć
traefik_network_ipam_gateway '172.16.1.1' brama
traefik_network_ipam_iprange '172.16.1.0/24' zakres IP
traefik_image 'traefik' używany obraz
traefik_add_volumes [] dodatkowe wolumeny do zamontowania
traefik_ports ['80:80', '443:443'] udostępnione porty
traefik_labels {} etykiety do ustawienia na kontenerze traefik

Domyślne nazwy wygenerowanych konfiguracji to:

  • Punkty wejścia:
    • http
    • https
  • Dostawcy:
    • docker
  • Rozwiązywacze certyfikatów:
    • letsencrypt

Szczegółowa konfiguracja

Jak wcześniej wspomniano, ta rola pozwala również na szczegółową konfigurację traefika za pomocą pliku konfiguracyjnego w formacie yaml. Poniższe zmienne mogą być używane:

Nazwa Domyślnie Opis
traefik_confkey_global undefined zobacz dokumentację 📑
traefik_confkey_serversTransport undefined zobacz dokumentację 📑
traefik_confkey_entryPoints undefined zobacz dokumentację 📑
traefik_confkey_providers undefined zobacz dokumentację 📑
traefik_confkey_api undefined zobacz dokumentację 📑
traefik_confkey_metrics undefined zobacz dokumentację 📑
traefik_confkey_ping undefined zobacz dokumentację 📑
traefik_confkey_log undefined zobacz dokumentację 📑
traefik_confkey_accessLog undefined zobacz dokumentację 📑
traefik_confkey_tracing undefined zobacz dokumentację 📑
traefik_confkey_hostResolver undefined zobacz dokumentację 📑
traefik_confkey_certificatesResolvers undefined zobacz dokumentację 📑

Te klucze są scalane w konfiguracji po konfiguracji szybkiej za pomocą filtra combine() w trybie nie rekursywnym. Pozwala to dodać opcje konfiguracji w miarę potrzeb. Jeśli chcesz nadpisać elementy szybkiej konfiguracji, użyj ich klucza (jak określono powyżej).

Kompatybilność z sbaerlocher/ansible.traefik

Ta rola jest kontynuacją roli sbaerlocher/ansible.traefik dla traefika w wersji 2. Większość zmiennych ustawionych dla tej roli będzie nadal działać w tej roli, z wyjątkiem trzech szczególnych przypadków, w których musisz ponownie stworzyć własną konfigurację używając zmiennych _confkey_. Są one wyjaśnione w kolejnych sekcjach.

Zmienne, które wymagają ręcznej interwencji

traefik_configuration_file

Użycie traefik_configuration_file nie ma wpływu na twoją instalację. Konfiguracja Traefika zmieniła się z wprowadzeniem wersji 2 i nie jest zgodna wstecz. Użyj dokumentacji Traefika, aby ponownie stworzyć swoją własną konfigurację używając zmiennych _confkey_.

traefik_api

Sposób definiowania API w Traefik w wersji 2 pozwala na użycie różnych konfiguracji. Dla uproszczenia, zrezygnowaliśmy z automatycznego generowania konfiguracji API, ponieważ nie może być ona połączona z własną konfiguracją i może prowadzić do nieprzewidzianych skutków ubocznych.

Aby skonfigurować prostą, nieskrępowaną API na porcie kontenera 8080, użyj następującej konfiguracji (Uwaga: ten przykład jest niebezpieczny, proszę rozważyć zabezpieczenie swojego API do użycia w produkcji):

traefik_confkey_api:
  insecure: true
  dashboard: true # użyj tego, aby włączyć dashboard
traefik_ports:
  - '80:80'
  - '443:443'
  - '8080:8080'

To automatycznie skonfiguruje punkt końcowy na porcie 8080.

traefik_ping

Podobnie jak w przypadku definicji API, definicja ping pozwala na własną konfigurację za pomocą wielu różnych kluczy konfiguracyjnych, co sprawia, że automatyczne generowanie konfiguracji jest niepraktyczne.

Zapoznaj się z dokumentacją konfiguracyjną Traefika na temat ping, aby znaleźć konfigurację, którą chcesz zastosować. Jako przykład, zobacz tę konfigurację, która udostępnia punkt końcowy ping na porcie 8082:

traefik_confkey_entryPoints:
  ping:
    address: ':8082'
traefik_confkey_ping:
  entryPoint: 'ping'
traefik_ports:
  - '80:80'
  - '443:443'
  - '8082:8082'
O projekcie

Role to deploy traefik.

Zainstaluj
ansible-galaxy install arillso.traefik
Licencja
mit
Pobrania
484.3k
Właściciel