PowerDNS.dnsdist

Ansible 役割: dnsdist

ビルドステータス ライセンス Ansible役割 GitHubタグ

これはPowerDNSチームによって作成されたAnsible役割で、dnsdistをセットアップします。

要件

Ansible 2.9以上のインストールが必要です。

依存関係

特になし。

役割の変数

利用可能な変数は以下に示されており、デフォルト値が記載されています(defaults/main.ymlを参照):

dnsdist_install_repo: ""

デフォルトでは、dnsdistはターゲットホストに設定されたソフトウェアリポジトリからインストールされます。

# マスターブランチからdnsdistをインストール
- hosts: dnsdist
  roles:
  - { role: PowerDNS.dnsdist,
      dnsdist_install_repo: "{{ dnsdist_powerdns_repo_master }}" }

# dnsdist 1.3.xをインストール
- hosts: dnsdist
  roles:
  - { role: PowerDNS.dnsdist,
      dnsdist_install_repo: "{{ dnsdist_powerdns_repo_13 }}" }

上記の例は、公式のPowerDNSリポジトリからDNSdistをインストールする方法を示しています (vars/main.ymlで定義されたリポジトリの完全なリストを参照)。

- hosts: all
  vars:
    dnsdist_install_repo:
      name: "dnsdist" # リポジトリ名
      apt_repo_origin: "example.com"  # dnsdistを指定したリポジトリに固定するために使用
      apt_repo: "deb http://example.com/{{ ansible_distribution | lower }} {{ ansible_distribution_release | lower }}/dnsdist main"
      gpg_key: "http://example.com/MYREPOGPGPUBKEY.asc" # リポジトリの公開GPGキー
      gpg_key_id: "MYREPOGPGPUBKEYID" # 役割を実行するたびにキーを再インポートしないため
      yum_repo_baseurl: "http://example.com/centos/$basearch/$releasever/dnsdist"
      yum_debug_symbols_repo_baseurl: "http://example.com/centos/$basearch/$releasever/dnsdist/debug"
  roles:
  - { role: PowerDNS.dnsdist }

上記の例のように、カスタムリポジトリからdnsdistをインストールすることも可能です。

dnsdist_install_epel: True

デフォルトで、lidsodiumなどのいくつかのDNSdist依存関係を満たすためにEPELをインストールします。 EPELのインストールをスキップするには、dnsdist_install_epel変数をFalseに設定します。

dnsdist_package_name: "{{ default_dnsdist_package_name }}"

dnsdistパッケージの名前:RHELおよびDebian派生のすべてで「dnsdist」です。

dnsdist_package_version: ""

オプションとして、インストールする特定のdnsdistパッケージのバージョンを設定できます。

dnsdist_install_debug_symbols_package: False

dnsdistのデバッグシンボルパッケージをインストールします。

dnsdist_debug_symbols_package_name: "{{ default_dnsdist_debug_symbols_package_name }}"

dnsdist_install_debug_symbols_packageTrueのときにインストールされるdnsdistデバッグシンボルパッケージの名前です。

dnsdist_acls: []

dnsdistのACL(ネットマスク)を構成します。

dnsdist_locals: ['127.0.0.1:5300']

dnsdistのリッスンアドレスを構成します。

dnsdist_servers:
  - '127.0.0.1'
  - "{ address='127.0.0.1:5300', source='127.0.0.1@lo', order=1 }"

dnsdistがトラフィックを送信する下流DNSサーバーのIPアドレスのリスト または新しいサーバー関数(https://dnsdist.org/reference/config.html#newServer)が解析できるLuaテーブル。

dnsdist_carbonserver: ""

dnsdistメトリクスを受信するCarbonサーバーのIPアドレス。

dnsdist_controlsocket: "127.0.0.1"

dnsdistのTCP制御ソケットのリッスンIPアドレス。

dnsdist_setkey: ""

dnsdistのTCP制御ソケットの暗号化キー。空の場合はランダムなキーが生成されます。ファイルにキーがすでに存在する場合は、それが保持されます。

dnsdist_webserver_address: ""

内蔵ウェブサーバーのリッスンIPアドレス。空の場合はデフォルトで無効です。

dnsdist_webserver_password: ""

内蔵ウェブサーバーの認証情報。dnsdist_webserver_addressが設定されている場合に設定する必要があります。

dnsdist_webserver_apikey: ""

内蔵APIの認証情報。

dnsdist_webserver_acl: ""

1.5.0以降、デフォルトで127.0.0.1と::1からの接続のみが許可されます。詳しくはhttps://dnsdist.org/guides/webserver.htmlを参照してください。

dnsdist_config: ""

dnsdist.confファイルにそのまま挿入される追加のdnsdist設定。

dnsdist_config_owner: 'root'
dnsdist_config_group: 'root'

dnsdist.confファイルの所有者ユーザーとグループ。

dnsdist_service_overrides: {}

サービスのオーバーライド用の辞書(systemd専用)。 これを使用して、[Service]カテゴリーのsystemd設定を変更できます。

dnsdist_unit_overrides: {}

サービスユニットのオーバーライド用の辞書(systemd専用)。 これを使用して、[Unit]カテゴリーのsystemd設定を変更できます。

dnsdist_environment_overrides: {}

サービスの環境オーバーライド用の辞書(systemd専用)。 これを使用して、[Service]カテゴリーの環境変数をsystemd設定で変更できます。

dnsdist_service_state: "started"
dnsdist_service_enabled: "yes"

DNSdistサービスの希望する状態を指定します。 例えば、これはDNSdistをインストールして構成し、サービスを自動的に開始しないようにすることを可能にします。

dnsdist_disable_handlers: False

設定変更時の自動サービス再起動を無効にします。

dnsdist_tlslocals: []

DNS over TLSリスナーを構成します。エントリはそのまま行ごとにコピーされます。

dnsdist_force_reinstall: False

dnsdistパッケージの強制再インストールを行い、パッケージのインストール手順の前に削除を実行します。これはdnsdistのダウングレードが必要な場合に使用されます。

例のプレイブック

Quad9の前にdnsdistをデプロイし、Web監視インターフェイスを有効にします。

- hosts: dnsdist
  roles:
    - { role: PowerDNS.dnsdist,
        dnsdist_servers: ['9.9.9.9'],
        dnsdist_webserver_address: "{{ ansible_default_ipv4['address'] }}:8083",
        dnsdist_webserver_password: 'geheim' }

変更履歴

役割に適用されたすべての変更の詳細な変更履歴はこちらで確認できます。

テスト

テストはMoleculeによって実行されます。

$ pip install tox

すべてのシナリオをテストするには、

$ tox

カスタムモレキュールコマンドを実行するには、

$ tox -e ansible29 -- molecule test -s dnsdist-18

ライセンス

MIT

プロジェクトについて

Dnsdist is a highly scriptable and DDoS aware DNS loadbalancer

インストール
ansible-galaxy install PowerDNS.dnsdist
ライセンス
mit
ダウンロード
22.7k
所有者