MENU
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
カテゴリー
  • IT関連 (623)
    • Bootstrap (2)
    • クラウド (4)
    • サーバー技術 (185)
    • ストレージ (7)
      • NetApp (7)
    • ネットワーク技術 (91)
      • Cisco (36)
      • Juniper (18)
      • 負荷分散装置 (17)
    • パソコン関連 (92)
      • MAC (25)
      • Windows (54)
    • プログラミング (154)
      • Ansible (11)
      • C言語 (23)
      • Python (111)
        • Django (20)
    • 仮想化 (88)
      • Docker (63)
      • VMware (23)
  • VPS (200)
    • ABLENET VPS (16)
    • Amazon Lightsail(VPS) (2)
    • ConoHaVPS (37)
    • mixhostVPS (4)
    • WebARENAIndigo (16)
    • XServerVPS (34)
    • お名前.com VPS (12)
    • さくらのVPS (24)
    • カゴヤクラウドVPS (13)
    • シンVPS (7)
  • レンタルサーバー (56)
    • エックスサーバー (38)
  • 光回線 (8)
  • 技術スキルアップ開発・学習 (7)
    • Envader (2)
    • RareTECH (2)
    • Udemy (3)
もう現役20年超えましたー。経験値ならだれにも負けないエンジニア技術ブログ
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
  1. ホーム
  2. IT関連
  3. プログラミング
  4. Ansible
  5. 【Ansible】仮想CentOS7環境でBIND(DNS)Playbookでインストールと動作確認

【Ansible】仮想CentOS7環境でBIND(DNS)Playbookでインストールと動作確認

2020 9/30
Ansible
2020年9月29日2020年9月30日

VMware仮想環境においてAnsible Playbookを利用してBIND(DNS)のインストールを実施したので構築方法をメモします。

前回、Dockerコンテナ間でAnsibleを動作した際の記事はこちらから

あわせて読みたい
【Ansible】Dockerコンテナ間でBIND(DNS)のPlaybookインストール・起動確認まで AnsibleのPlaybookを利用して、リモートサーバーへのBINDインストールと動作確認までを実施したのでまとめました。 現状として、インストール先のDNSサーバーは動作不具...

目次
安くて高速!高性能VPSで快適開発!
最速5分でサーバー構築
>>>こちらをチェック

エンジニア必見! 技術力を伸ばすVPS徹底比較
>>>VPS比較

VMware仮想環境下で「Ansible」playbookを実行(BINDインストール)と動作確認まで

前回、Dockerコンテナ間でAnsible Playbookを実行し、BINDをインストールしたのですが、named、named-chrootがどれも起動しないという事象が発生しました。

今回、同じ設定でvShere環境のVMを利用して動作するか確認します。

OS環境は以下となります。

  • OS:CentOS7
  • (latest)

  • Ansibleサーバー(192.168.140.100)
  • dnsサーバー(192.168.140.101)

AnsiblePlaybookのファイル構成

今回配置したファイル構成は以下となります。
配置、せって内容は前回Dockerコンテナで設定した内容とほぼ変わりません。

[root@Ansible_test dns]# tree
.
|- config_files
    - 140.168.192.in-addr.arpa.rev
    - named.conf
    - test-network.local
|- hosts
|- playbook
    - dns_install.yml

「named.conf」作成

リモート先のDNSサーバーへコピーする「named.conf」の設定内容を作成します。

[root@Ansible_test dns]# cat config_files/named.conf
acl "test-network" {
        192.168.140.0/24;
};

options {
        listen-on port 53 { 127.0.0.1; 192.168.140.101; };
        listen-on-v6 port 53 { ::1; };
        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";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { localhost; test-network; };

        recursion yes;

        dnssec-enable no;
        dnssec-validation no;

        managed-keys-directory "/var/named/dynamic";

        pid-file "/var/named/named.pid";
        session-keyfile "/var/named/session.key";
};

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

view "internal" {
        match-clients { localhost; test-network; };

        zone "." IN {
                type hint;
                file "named.ca";
        };

        zone "test-network.local" {
                type master;
                file "test-network.local";
        };

        zone "140.168.192.in-addr.arpa" {
                type master;
                file "140.168.192.in-addr.arpa.rev";
        };

        include "/etc/named.rfc1912.zones";
        include "/etc/named.root.key";
};

「正引き」ゾーンファイルの作成

正引きゾーンファイルの設定内容は以下となります。

  • ansible.test-network.local→192.168.140.100
  • dns.test-network.local→192.168.140.101
[root@Ansible_test dns]# cat config_files/test-network.local
$TTL 3600
@                IN      SOA dns.test-network.local. root.test-network.local. (
                         2020011202 ; serial
                         3600       ; refresh 1hr
                         900        ; retry 15min
                         604800     ; expire 1w
                         86400      ; min 24hr
)

                 IN      NS     dns.test-network.local.
dns              IN      A      192.168.140.101
ansible          IN      A      192.168.140.100

「逆引き」ゾーンファイルの作成

逆引きゾーンファイルの内容は以下となります。

  • 192.168.140.100→ansible.test-network.local
  • 192.168.140.101→dns.test-network.local
[root@Ansible_test dns]# cat config_files/140.168.192.in-addr.arpa.rev
$TTL 3600
@                IN      SOA dns.test-network.local. root.test-network.local. (
                         2020011202 ; serial
                         3600       ; refresh 1hr
                         900        ; retry 15min
                         604800     ; expire 1w
                         86400      ; min 24hr
)

                 IN      NS     dns.test-network.local.
100              IN      PTR    ansible.test-network.local.
101              IN      PTR    dns.test-network.local.

「hosts」インベントリファイル作成

Playbook実行対象機器を設定します。
今回のリモート対象のサーバーは(192.168.140.101)となります。

[root@Ansible_test dns]# cat hosts
[dns]
192.168.140.101

[all:vars]
ansible_ssh_port=22
ansible_ssh_user=root
ansible_ssh_pass=(password)
ansible_sudo_pass=(password)

「Playbook」作成

Playbookの内容は以下となります。

  1. 「hosts」から対象のリモートサーバーへアクセス
  2. bind,bind-chroot,bind-utilsをインストール
  3. named-chroot停止
  4. named.confをリモートサーバーへコピー
  5. 正引きゾーンファイルをリモートサーバーへコピー
  6. 逆引きゾーンファイルをリモートサーバーへコピー
  7. named-chroot起動
[root@Ansible_test dns]# cat playbook/dns_install.yml
- hosts: dns
  become: yes
  tasks:
  - name: bind install
    yum:
      name: bind
      state: present
  - name: bind-chroot install
    yum:
      name: bind-chroot
      state: present
  - name: bind-utils install
    yum:
      name: bind-utils
      state: present
  - name: stop_named-chroot
    service:
      name: named-chroot
      state: stopped
  - name: copy named.conf
    copy:
       src: /etc/ansible/roles/dns/config_files/named.conf
       dest: /etc/named.conf
       owner: root
       group: named
       mode: 0640
  - name: copy zone file
    copy:
       src: /etc/ansible/roles/dns/config_files/test-network.local
       dest: /var/named/test-network.local
       owner: root
       group: named
       mode: 0640
  - name: copy reverse zone file
    copy:
       src: /etc/ansible/roles/dns/config_files/140.168.192.in-addr.arpa.rev
       dest: /var/named/140.168.192.in-addr.arpa.rev
       owner: root
       group: named
       mode: 0640
  - name: start_and_enable_named-chroot
    service:
      name: named-chroot
      state: started
      enabled: yes

「Ansible Playbook」 実行

以下コマンドでPlaybookを実行します。

[root@Ansible_test dns]# ansible-playbook -i hosts playbook/dns_install.yml

PLAY [dns] *************************************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************************
ok: [192.168.140.101]

TASK [bind install] ****************************************************************************************************************************************
ok: [192.168.140.101]

TASK [bind-chroot install] *********************************************************************************************************************************
ok: [192.168.140.101]

TASK [bind-utils install] **********************************************************************************************************************************
ok: [192.168.140.101]

TASK [stop_named-chroot] ***********************************************************************************************************************************
changed: [192.168.140.101]

TASK [copy named.conf] *************************************************************************************************************************************
ok: [192.168.140.101]

TASK [copy zone file] **************************************************************************************************************************************
ok: [192.168.140.101]

TASK [copy reverse zone file] ******************************************************************************************************************************
ok: [192.168.140.101]

TASK [start_and_enable_named-chroot] ***********************************************************************************************************************
changed: [192.168.140.101]

PLAY RECAP *************************************************************************************************************************************************
192.168.140.101            : ok=9    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

問題なく実行されると上記の様にエラーがカウントされず、「ok」、及び「changed」がカウントされます。

動作確認

実際にリモートサーバーでBINDがインストールされ、正常動作をしているか確認します。
以下ではnslookupを実行し、DNSをリモートサーバー(192.168.140.101)を指名します。

正引き:ansible.test-network.local

[root@Ansible_test dns]# nslookup ansible.test-network.local 192.168.140.101
Server:         192.168.140.101
Address:        192.168.140.101#53

Name:   ansible.test-network.local
Address: 192.168.140.100

逆引き:ansible.test-network.local

[root@Ansible_test dns]# nslookup 192.168.140.100 192.168.140.101
100.140.168.192.in-addr.arpa    name = ansible.test-network.local.

正引き:dns.test-network.local

[root@Ansible_test dns]# nslookup dns.test-network.local 192.168.140.101
Server:         192.168.140.101
Address:        192.168.140.101#53

Name:   dns.test-network.local
Address: 192.168.140.101

逆引き:dns.test-network.local

[root@Ansible_test dns]# nslookup 192.168.140.101 192.168.140.101
101.140.168.192.in-addr.arpa    name = dns.test-network.local.

上記の様にDNSサーバーから応答があれば成功です。

応答がない場合は対象のサーバーで「53」番ポートの開放をしましょう。
permitしていない場合は名前解決の確認ができません。

設定は以上となります。

エンジニアスキルをアップする勉強法

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。

あわせて読みたい
現役エンジニアがおすすめするVPSレンタルサーバ比較(高速SSD限定) 格安VPS比較(2025年最新版)

Ansible
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする コメントをキャンセル

email confirm*

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)



検索
カテゴリー
新着記事
  • XServerVPS アニメ風 男の子 プログラミングをしている VPSを利用している 楽しそうにしている
    XServerVPSで証明書(SSL)を取得する方法
    2025年3月24日
    XServerVPS
  • レンタルサーバ アニメ風 女の子 楽しんでパソコンをしている 目がキラキラ
    WordPressがレンタルサーバよりVPSで利用する方がおすすめの理由
    2025年3月19日
    VPS
  • VPS レンタルサーバー アニメ風 女の子 プログラミングをしている VPSを利用している 楽しそうにしている
    VPSとクラウドの違いとは?初心者向けにわかりやすく解説
    2025年3月5日
    VPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSはWindows serverを利用できない。その理由と利用できるOSは?
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSでゲームを利用する環境はあるのか
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSのサイトの表示速度は他社に比べて早いのか?
    2025年3月4日
    シンVPS
目次
目次