traefik

Ansible Роль: traefik

Статус сборки Ansible Galaxy Ansible Роль

Описание

Traefik — это реверсивный прокси, написанный на Go. Он может использоваться в различных ситуациях с многими провайдерами (Kubernetes, Swarm и т.д.). Версия 2 также поддерживает TCP маршрутизацию.

Эта роль устанавливает traefik на хосте в качестве реверсивного прокси и балансировщика нагрузки. Это позволяет использовать один сервер в качестве хоста для нескольких контейнеризованных приложений.

Примечание: Эта роль позволяет использовать один (1) сервер в качестве хоста для многих приложений. В зависимости от вашего варианта использования, это может быть не то, что вам нужно. Для сервисов, которым требуется высокая доступность, рассмотрите возможность использования Kubernetes или других систем и настройте там traefik.

Установка

ansible-galaxy install arillso.traefik

Требования

  • Docker

Переменные роли

Traefik версии 2.0 и выше поддерживает yaml конфигурацию. Эта роль использует это для генерации конфигурации непосредственно из заданных переменных ansible. Существует ряд переменных быстрого настроек, которые позволяют вам настроить простую инстанцию, но также есть возможность полностью настроить каждую ключевую переменную самостоятельно. Переменные быстрого настроя позволяют вам:

  • Настроить резольвер сертификатов на базе lets-encrypt
  • Настроить стандартные entrypoints
  • Настроить стандартный Docker провайдер

Переменные быстрого настроя имеют префикс traefik_qs_.

Имя По умолчанию Описание
traefik_dir /etc/traefik где хранить данные traefik
traefik_hostname "{{ inventory_hostname }}" имя хоста этого экземпляра
traefik_network traefik_proxy имя создаваемой сети
traefik_qs_send_anonymous_usage false отправлять ли анонимную статистику использования
traefik_qs_https false настраивать ли HTTPS конечную точку
traefik_qs_https_redirect false настраивать ли редирект на HTTPS
traefik_qs_https_le false настраивать ли letsencrypt с использованием tls (только если включен https)
traefik_qs_https_le_mail не определено email для использования letsencrypt (Обязательно)
traefik_qs_log_level ERROR уровень логирования
traefik_container_name 'traefik' имя контейнера
traefik_network_name 'traefik_proxy' имя сети
traefik_network_ipam_subnet '172.16.1.0/24' подсеть
traefik_network_ipam_gateway '172.16.1.1' шлюз
traefik_network_ipam_iprange '172.16.1.0/24' диапазон IP
traefik_image 'traefik' используемый образ
traefik_add_volumes [] дополнительные тома для монтирования
traefik_ports ['80:80', '443:443'] открытые порты
traefik_labels {} метки, которые нужно установить на контейнер traefik

Имена сгенерированных конфигураций по умолчанию:

  • Entrypoints:
    • http
    • https
  • Провайдеры:
    • docker
  • Резольверы сертификатов:
    • letsencrypt

Глубокая конфигурация

Как уже было сказано, эта роль также позволяет вам настроить traefik более детально, используя yaml конфигурацию traefik. Следующие переменные могут быть использованы:

Имя По умолчанию Описание
traefik_confkey_global не определено см. Дока 📑
traefik_confkey_serversTransport не определено см. Дока 📑
traefik_confkey_entryPoints не определено см. Дока 📑
traefik_confkey_providers не определено см. Дока 📑
traefik_confkey_api не определено см. Дока 📑
traefik_confkey_metrics не определено см. Дока 📑
traefik_confkey_ping не определено см. Дока 📑
traefik_confkey_log не определено см. Дока 📑
traefik_confkey_accessLog не определено см. Дока 📑
traefik_confkey_tracing не определено см. Дока 📑
traefik_confkey_hostResolver не определено см. Дока 📑
traefik_confkey_certificatesResolvers не определено см. Дока 📑

Эти ключи объединяются в конфигурацию после конфигурации быстрого настроя, используя combine() фильтр в не рекурсивном режиме. Это позволяет вам добавлять опции конфигурации по мере необходимости. Если вы хотите перезаписать элементы быстрого настроя, используйте их ключ (как указано выше).

Совместимость с sbaerlocher/ansible.traefik

Эта роль предназначена как продолжение sbaerlocher/ansible.traefik роли для traefik v2. Большинство переменных, заданных для указанной роли, продолжат работать в этой роли, за исключением трех особых случаев, когда вы должны воссоздать пользовательскую конфигурацию, используя переменные с _confkey_. Эти моменты объясняются в следующих разделах.

Переменные, требующие ручного вмешательства

traefik_configuration_file

Использование traefik_configuration_file не влияет на вашу установку. Конфигурация Traefik изменилась с введением v2 и не совместима с предыдущими версиями. Используйте документацию Traefik для воссоздания вашей пользовательской конфигурации с использованием переменных _confkey_.

traefik_api

Способ определения API в Traefik v2 позволяет вам использовать несколько различных конфигураций. В целях упрощения мы убрали автоматическую генерацию конфигурации api, поскольку она не может быть просто объединена с пользовательской конфигурацией и может вызвать непредвиденные побочные эффекты.

Чтобы настроить простой, небезопасный api на порт контейнера 8080, используйте следующую конфигурацию (Примечание: этот пример небезопасен, пожалуйста, подумайте о том, чтобы защитить ваш API для использования в продакшене):

traefik_confkey_api:
  insecure: true
  dashboard: true # используйте это для включения панели управления
traefik_ports:
  - '80:80'
  - '443:443'
  - '8080:8080'

Это автоматически настроит entrypoint на порту 8080.

traefik_ping

Аналогично определению api, определение ping позволяет настраивать разные ключи конфигурации, что делает автоматическую генерацию конфигурации невозможной.

Следуйте документам конфигурации Traefik о ping чтобы найти желаемую конфигурацию. В качестве примера рассмотрите следующую конфигурацию, которая откроет ping конечную точку на порту 8082:

traefik_confkey_entryPoints:
  ping:
    address: ':8082'
traefik_confkey_ping:
  entryPoint: 'ping'
traefik_ports:
  - '80:80'
  - '443:443'
  - '8082:8082'
О проекте

Role to deploy traefik.

Установить
ansible-galaxy install arillso/ansible.traefik
Лицензия
mit
Загрузки
484102
Владелец