rhtconsulting.haproxy

haproxy

HAProxyを1つ以上のロードバランスアプリケーション用にインストールおよび設定するためのAnsibleロールです。

このロールは、HAProxyのフロントエンドとバックエンドサーバーの設定に気を配るのではなく、ユーザーがロードバランスさせたいアプリケーションの設定に集中すべきだという考えに基づいています。したがって、このロールの使用は、ユーザーがロードバランスさせたいアプリケーションを指定し、その後ロールがHAProxyのフロントエンドとバックエンドサーバーの設定を自動的に処理することを前提としています。

要件

このロールが機能するための要件。

パッケージ

ロールをインストールするために利用可能でなければならないパッケージ。

  • haproxy

サービス

ロールが設定するために有効にする必要があるサービス。

  • firewalld

ロール変数

期待されるロールパラメータに関する情報。

パラメータ 必須 デフォルト 選択肢 コメント
haproxy_applications はい ロードバランスさせるアプリケーションを定義するハッシュのリスト

haproxy_applications

haproxy_applicationsパラメータは、ロードバランスさせるアプリケーションを定義するハッシュのリストです。リスト内の各アイテムは次のパラメータを含むことができます。

パラメータ 必須 デフォルト 選択肢 コメント
name はい アプリケーションの名前。フロントエンドおよびバックエンドサーバー定義に使用されます。HAProxyの統計に表示されるため、説明的である必要があります。/a-zA-Z0-9-_に一致する必要があります。
domain はい HAProxyサーバーに解決され、serversをロードバランスするためのFQDN。単純なFQDNまたはドメインに一致する正規表現を使用できます。
domain_is_regex いいえ false true, false 指定されたdomainが正規表現である場合はtrue、そうでない場合はfalse
expose_http いいえ false true, false このアプリケーションをhttpで公開するためにtrue、公開しないためにfalse
expose_https いいえ false true, false このアプリケーションをhttpsで公開するためにtrue、公開しないためにfalse
redirect_http_to_https いいえ false true, false httpからhttpsに自動的にリダイレクトするためにtrue、リダイレクトしないためにfalse
servers はい ロードバランスさせるサーバーを定義するハッシュのリスト。

servers

haproxy_applicationsリストの各要素には、各アプリケーションのロードバランスのためのサーバーを定義するserversキーを含める必要があります。リスト内の各アイテムは次のパラメータを含むことができます。

パラメータ 必須 デフォルト 選択肢 コメント
name はい サーバーを参照するために使用される名前。HAProxyの統計に表示されます。/a-zA-Z0-9-_に一致する必要があります。
address はい ロードバランスするサーバーのFQDNまたはIP。
port_http いいえ 80 expose_httptrueのときにaddressのサーバーのポート。
port_https いいえ 443 expose_httpstrueのときにaddressのサーバーのポート。

実例プレイブック

Ansible Towerのロードバランス

- name: HAProxy
  hosts: haproxy
  roles:
    - role: haproxy
      haproxy_applications:
        - name: ansible-tower
          domain: tower.example.com
          expose_https: True
          redirect_http_to_https: True
          servers:
            - name: tower0002
              address: tower0002.example.com
            - name: tower0003
              address: tower0003.example.com
            - name: tower0004
              address: tower0004.example.com

OpenShift Container Platform (OCP) マスターとルーターのロードバランス

- name: HAProxy
  hosts: haproxy
  roles:
    - role: haproxy
      haproxy_applications:
        - name: ocp-admin
          domain: ocp.example.com
          expose_https: True
          redirect_http_to_https: True
          servers:
            - name: ocp0002-master
              address: ocp0002.example.com
            - name: ocp0003-master
              address: ocp0003.example.com
            - name: ocp0004-master
              address: ocp0004.example.com
        - name: ocp-router
          domain: .*.apps.example.com
          domain_is_regex: True
          expose_https: True
          expose_http: True
          redirect_http_to_https: False
          servers:
            - name: ocp0005-infra
              address: ocp0005.example.com
            - name: ocp0006-infra
              address: ocp0006.example.com
            - name: ocp0007-infra
              address: ocp0007.example.com

著者情報

プロジェクトについて

Ansible role for installing and configuring HAProxy for one or many frontend and backend servers.

インストール
ansible-galaxy install rhtconsulting.haproxy
ライセンス
apache-2.0
ダウンロード
145.4k