tenhishadow.manage_bind

tenhishadow.manage_bind

ビルドステータス

これは、管理されたサーバーでBINDを設定するための自動化ツールです。 BINDは再起動前に設定とゾーンをチェックします。 実行中、Ansibleは以下のことを行います:

  • firewalldをインストールして設定します(デフォルト変数「firewalld」が上書きされていない場合)
  • chroot内にBINDをインストールします
  • namedとゾーンを構文チェック(named-checkconfとnamed-checkzoneを使用)しながら設定します
  • 成功した場合、BINDデーモンを再起動します

要件

利用例のプレイブック

---

- hosts: external_dns
  become: "yes"
  become_user: "root"
  gather_facts: "true"
  any_errors_fatal: "true"
  serial: "1"             # BINDサーバー全てが失敗しないように一つずつ実行
  vars:
    - configs: configs
  vars_files:
    - configs/ansible_vars.yml
  roles:
  - tenhishadow.manage_bind

...

プレイブック用の例ファイル

.
├── configs
│   ├── ansible_vars.yml    # ゾーンとパラメータを含むプレイブック用の変数
│   ├── example.com.zone     # レコードを含むゾーンファイル
│   ├── example1.com.zone    # レコードを含むゾーンファイル
│   ├── named.j2             # /etc/named.confとなる中央設定ファイル 
└── playbook.yml

ansible_vars.ymlの例内容:

---

zones:
  example.com:
    file: "example.com.zone"
    zone_serial: '2018052901'
    zone_refresh: '3600'
    zone_retry: '7200'
    zone_expire: '3600000'
    zone_minimum: '3600'
  example1.com:
    file: "example1.com.zone"
    zone_serial: '2018081301'
    zone_refresh: '3600'
    zone_retry: '7200'
    zone_expire: '3600000'
    zone_minimum: '3600'

...

named.j2の例内容

# {{ ansible_managed }}
options {
 listen-on port 53              { any; };
 listen-on-v6 port 53           { any; };
 directory                      "/var/named";
 dump-file                      "/var/named/data/cache_dump.db";
 statistics-file                "/var/named/data/named_stats.txt";
 memstatistics-file             "/var/named/data/named_mem_stats.txt";
 pid-file                       "/run/named/named.pid";
 session-keyfile                "/run/named/session.key";
 allow-query                    { any; };
 recursion                      no;
 version                        "AIX 5.1.0";
 auth-nxdomain                  no;
 dnssec-enable                  yes;
 dnssec-validation              auto;
 bindkeys-file                  "/etc/named.iscdlv.key";
 managed-keys-directory         "/var/named/dynamic";
 transfers-out                  100;
};

logging {
 channel  default_debug {
 file     "data/named.run";
 severity dynamic;
 };
};

# ゾーンの開始
{% for key, value in zones.iteritems() %}
zone "{{ key }}" {
 type           master;
 file           "/var/named/data/{{ value.file }}";
 allow-transfer { none; };
};
{% endfor %}
# ゾーンの終了

ライセンス

GPL v 3.0

著者情報

プロジェクトについて

Role for configuring bind9

インストール
ansible-galaxy install tenhishadow.manage_bind
ライセンス
gpl-3.0
ダウンロード
21.5k
所有者
DevOps