arillso.traefik
Ansibleロール: traefik
説明
TraefikはGoで書かれたリバースプロキシです。 KubernetesやSwarmなど、さまざまな提供者と一緒に使用できます。 バージョン2はTCPルーティングもサポートしています。
このロールは、ホスト上にtraefikをリバースプロキシおよびロードバランサーとして設定します。 これにより、1つのサーバーを複数のDocker化されたアプリケーションのホストとして使用できます。
注意: このロールでは、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を詳細に設定することもできます。 以下の変数を使用できます。
名前 | デフォルト | 説明 |
---|---|---|
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との互換性
このロールはtraefik v2のために
sbaerlocher/ansible.traefikロールの継続として設計されています。
上記のロールで設定されていた変数の大部分は、このロールでも引き続き機能しますが、3つの特例があり、
これらについては_confkey_
変数を使用してカスタム設定を再作成する必要があります。
以下のセクションで説明します。
手動でのアクションが必要な変数
traefik_configuration_file
traefik_configuration_file
を使用しても、インストールには影響しません。
Traefikの構成はv2の導入に伴い変更されており、後方互換性はありません。
独自の構成を再作成するには、Traefikのドキュメントを参照してください。
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の定義も複数の異なる設定キーを使用してカスタム設定が可能であるため、自動生成された構成は実現不可能です。
Traefikのpingに関する構成ドキュメントを参照して、適用したい構成を見つけてください。例えば、ポート8082
でpingエンドポイントを公開するこの設定を参照してください:
traefik_confkey_entryPoints:
ping:
address: ':8082'
traefik_confkey_ping:
entryPoint: 'ping'
traefik_ports:
- '80:80'
- '443:443'
- '8082:8082'