marcinpraczko.named

簡単な情報

この役割は、以下のリポジトリからフォークしたものです:

このフォークを作成し、調整した理由:

  • Namedはまだ使われており、動作する役割があると良い。
  • 役割は良い構造を持ち、設定の柔軟性がある。
  • この役割は、2015年以降そのままでは動作せず、一部の問題が解決されていなかった。

Ansible-role-named

バージョン: 0.1.4

  • Ansible 2.0以上が必要
  • RHEL/CentOS 6.x、7.x、Debian、Ubuntuのほとんどのバージョンと互換性あり

インストール

ansible-galaxyから直接インストール(最新リリース)

$ ansible-galaxy install marcinpraczko.named

GitHubリポジトリから直接インストール

developfeatureブランチに変更が適用されていることがあり、まだリリースされていない場合があります。 Ansible-galaxyは役割をGitHubから直接インストールすることができます。

mkdir testing-roles
cd testing-roles
ansible-galaxy install -p roles git+https://github.com/marcinpraczko/ansible-role-named.git,develop

上記の例ではdevelopブランチをインストールします。これは、要件に応じて任意のgit SHAコミット、タグ、またはブランチ名に調整できます。

インストールされたバージョンを確認するには、次のコマンドを使用します:

ansible-galaxy list -p roles

始め方

BIND (named)のインストール

BIND (named)とすべての必要な依存関係のインストールは非常に簡単で、設定の前に一括または個別に実行できます:

単独インストール

$ ansible-playbook -t install -i hosts named.yml

プレイブック全体を実行

$ ansible-playbook -i hosts named.yml

例のプレイブック、ホスト、およびグループ変数

例のプレイブック

- name: "マスターを正常な状態にするために必要なアクション"
  hosts: named_masters
  remote_user: root

  roles:
    - "marcinpraczko.named"

- name: "スレーブを正常な状態にするために必要なアクション"
  hosts: named_slaves
  remote_user: root

  roles:
    - "marcinpraczko.named"

例のホスト

[named_masters]
127.0.0.1

#[named_slaves]
#127.0.0.1

例のグループ変数

named_masters:

named_acls:
  public_slaves:
    - 8.8.8.8
    - 9.9.9.9
  private_slaves:
    - 192.168.25.5
    - 192.168.25.6

named_zones:
# ここに_があることに注意、これがansibleを喜ばせ、後で設定やゾーンで自動的に置き換えられます
  foo_com:
    type: master
    allow_transfer:
      - public_slaves
    ttl: 3000

named_slaves:

named_zones_create_masters: False 

named_zones:
# ここに_があることに注意、これがansibleを喜ばせ、後で設定やゾーンで自動的に置き換えられます
  foo_com:
    type: slave
    master:
      - 7.7.7.7

この役割は、インストールタスクと設定タスクから構成されており、どちらもinstallまたはconfigureでタグ付けされていて、個別またはすべて一緒に実行できます。この役割には、named.confファイルおよびaclとゾーンの含めるファイルを保持するincluded.confファイル、デフォルトまたはグループ変数に基づく動的ゾーンファイルを作成するためのアクションがあります。

設定可能な項目

この役割には設定可能な項目がいくつかあります。以下は、最初のデフォルトの要約リストです (最新のリストはdefaults/main.ymlにあります):

## インストールオプション
named_conf_file_location: /etc/named.conf

# オペレーティングシステムに対して正しいことを確認してください
named_user: named
named_group: named
named_service_name: named

# Monit固有の設定
named_monit_enable: False
named_monit_service_name: monit
named_monit_conf_directory: /etc/monit.d
named_pid_file: /var/run/named/named.pid
named_service_file: /etc/init.d/named

## 基本設定オプション

# オプションセクション
named_conf_listen_on_port: 53
named_conf_listen_on_interface:
  - 127.0.0.1
named_conf_listen_on_v6_port: 53
named_conf_listen_on_v6_interface:
  - ::1
named_conf_notify: "no"
named_conf_forwarders:
  - 7.7.7.7
  - 7.7.8.8
named_conf_directory: /var/named
named_conf_dump_file: /var/named/data/cache_dump.db
named_conf_statistics_file: /var/named/data/named_stats.txt
named_conf_memstatistics_file: /var/named/data/named_mem_stats.txt
named_conf_allow_query:
  - any
#named_conf_allow_transfer: none
named_conf_recursion: no
named_conf_dnssec_enable: yes
named_conf_dnssec_validation: yes
named_conf_dnssec_lookaside: auto
named_conf_bindkeys_file: /etc/named.iscdlv.key
named_conf_managed_keys_directory: /var/named/dynamic

# ロギングセクション
named_conf_logging_channel: default_debug
named_conf_logging_file_directory: /var/log/named
named_conf_logging_file: named.log
named_conf_logging_severity: info
named_conf_logging_print_severity: yes
named_conf_logging_print_time: yes
named_conf_logging_print_category: yes
named_conf_logging_category_name: default
named_conf_logging_categories:
  - default_debug

named_conf_includes_directory: /etc/named

### デフォルトのaclや含める項目はありません

## マスター設定
# この設定は、宣言されたマスターのディレクトリにゾーンファイルを作成する必要があるかどうかを決定します。
# 通常、スレーブホストを構成する場合は、これらを作成しない方が良いでしょう。
named_zones_create_masters: True

### ゾーンの設定デフォルト
named_conf_zone_ttl: 21600
named_conf_zone_soa: foo.com. noc.foo.com.
named_conf_zone_refresh: 21600
named_conf_zone_retry: 600
named_conf_zone_expire: 86400
named_conf_zone_expire_min: 3000

動的ゾーンファイル作成用のデフォルト変数を指定でき、これにより デフォルトに外れた設定が必要なゾーンの上書きのみを指定することで、group_varファイルを大幅に減らすことができます。

ファクト

以下のファクトは、インベントリやこの役割の外部からアクセス可能です。

  • {{ ansible_local.named.interfaces_ipv4 }}
  • {{ ansible_local.named.interfaces_ipv6 }}
  • {{ ansible_local.named.port_ipv4 }}
  • {{ ansible_local.named.port_ipv6 }}

テスト

  • 元々の役割にはtravisファイルだけが存在しました。
  • この役割をローカルでテストするためのmolecule設定を追加しました。

Moleculedockervagrantを使用してローカルでansible役割をテストすることができます。 また、serverspectestinfraのような検証を実行するのにも役立ちます。

これらすべてにより、この役割のテストがはるかに簡単になります。

必要なパッケージのインストール

  • Docker
  • Vagrant

moleculeのインストール

  • システムにPythonの仮想環境をインストールします。
  • Pythonの仮想環境内にmoleculeをインストールします。
virtualenv venv
source venv/bin/activate

# 一般的なpipパッケージを更新
pip install -U pip setuptools wheel

# 必要なPythonパッケージを含めてmoleculeをインストール
pip install -r tests/requirements.txt

moleculeでのテスト

次のコマンドは、Vagrantドライバーで役割をテストすることを可能にします。

注意:次のコマンドを初めて実行する場合、時間がかかります(フルVagrantイメージがローカルホストにダウンロードされる必要があります)。

molecule test --sudo

上記のコマンドは、検証ツール、例えばtestinfraserverspecのためだけに--sudoを実行します。この--sudoオプションは、ansibleの実行方法には影響しません。

プロジェクトについて

A highly configurable role for BIND (named) versions >9

インストール
ansible-galaxy install marcinpraczko.named
ライセンス
gpl-2.0
ダウンロード
75
所有者