arillso.traefik
Rola Ansible: traefik
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'
ansible-galaxy install arillso.traefik