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サーバーは動作不具...

目次
  1. VMware仮想環境下で「Ansible」playbookを実行(BINDインストール)と動作確認まで
    1. AnsiblePlaybookのファイル構成
    2. 「named.conf」作成
    3. 「正引き」ゾーンファイルの作成
    4. 「逆引き」ゾーンファイルの作成
    5. 「hosts」インベントリファイル作成
    6. 「Playbook」作成
    7. 「Ansible Playbook」 実行
    8. 動作確認
安くて高速!高性能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コンテナで設定した内容とほぼ変わりません。

1
2
3
4
5
6
7
8
9
[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」の設定内容を作成します。

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
[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
01
02
03
04
05
06
07
08
09
10
11
12
13
[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
01
02
03
04
05
06
07
08
09
10
11
12
13
[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)となります。

1
2
3
4
5
6
7
8
9
[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起動
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
[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を実行します。

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[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

1
2
3
4
5
6
[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

1
2
[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

1
2
3
4
5
6
[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

1
2
[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
目次
  1. VMware仮想環境下で「Ansible」playbookを実行(BINDインストール)と動作確認まで
    1. AnsiblePlaybookのファイル構成
    2. 「named.conf」作成
    3. 「正引き」ゾーンファイルの作成
    4. 「逆引き」ゾーンファイルの作成
    5. 「hosts」インベントリファイル作成
    6. 「Playbook」作成
    7. 「Ansible Playbook」 実行
    8. 動作確認
目次
  1. VMware仮想環境下で「Ansible」playbookを実行(BINDインストール)と動作確認まで
    1. AnsiblePlaybookのファイル構成
    2. 「named.conf」作成
    3. 「正引き」ゾーンファイルの作成
    4. 「逆引き」ゾーンファイルの作成
    5. 「hosts」インベントリファイル作成
    6. 「Playbook」作成
    7. 「Ansible Playbook」 実行
    8. 動作確認