arillso.traefik

Ansible角色:traefik

构建状态 Ansible Galaxy Ansible角色

描述

Traefik 是一个用Go语言编写的反向代理。它可以用于多种场景,并支持多种提供商(如Kubernetes、Swarm等)。版本2还支持TCP路由。

此角色在主机上设置traefik作为反向代理和负载均衡器。这样,你可以使用一台服务器作为多个容器化应用程序的主机。

注意: 此角色允许你使用一台(1)服务器作为多个应用程序的主机。根据你的使用案例,这可能不是你想要的。对于需要高可用性的服务,考虑使用Kubernetes或其他系统,并在其中设置traefik。

安装

ansible-galaxy install arillso.traefik

要求

  • Docker

角色变量

Traefik v2.0及更高版本支持yaml配置。此角色利用此功能直接从给定的ansible变量生成配置。有一些快速设置变量,可以帮助你设置一个简单的实例,但也可以选择完全配置每一个关键选项。快速设置让你可以:

  • 设置基于lets-encrypt的证书解析器
  • 设置标准入口点
  • 设置标准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 是否使用tls设置letsencrypt(仅在启用https时)
traefik_qs_https_le_mail 未定义 用于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容器上的标签。

生成配置的默认名称为:

  • 入口点:
    • http
    • https
  • 提供商:
    • docker
  • 证书解析器:
    • letsencrypt

深入配置

如前所述,此角色还允许你通过使用traefik yaml配置进行深入配置。可以使用以下变量:

名称 默认值 描述
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

Traefik v2中定义API的方式允许你使用多种不同的配置。为了简化,我们放弃了自动生成API配置,因为它与自定义配置无法简单合并,可能导致不可预见的副作用。

要在容器端口8080上设置一个简单的不安全API,请使用以下配置(注意:这个例子是不安全的,请考虑在生产环境中保护你的API):

traefik_confkey_api:
  insecure: true
  dashboard: true # 使用此项启用仪表板
traefik_ports:
  - '80:80'
  - '443:443'
  - '8080:8080'

这将自动在端口8080上配置一个入口点

traefik_ping

与API定义类似,ping定义通过多个不同的配置键允许自定义配置,使得自动生成配置变得不可行。

请查看有关ping的Traefik配置文档,查找你想要应用的配置。作为例子,看看以下配置,它将在端口8082上暴露ping端点:

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.traefik
许可证
mit
下载
484.3k
拥有者