arillso.traefik

Ansibleロール: traefik

ビルドステータス Ansible Galaxy Ansibleロール

説明

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'
プロジェクトについて

Role to deploy traefik.

インストール
ansible-galaxy install arillso.traefik
ライセンス
mit
ダウンロード
484.3k
所有者