私はウェブサーバー(Ubuntu 12.04サーバーとNginxを実行しています)を持っており、その上にいくつかのウェブサイトをセットアップしています。
私は自分のWebサーバーを管理するのはまったく新しいので、DNSの構成を除いてはかなり順調に進んでいます。
1台のサーバーをWebサーバーとDNSサーバーの両方として機能させたい(誰かが私を説得できない限り)。
いくつかのBIND9ガイドを読みましたが、なぜそれほど複雑でなければならないのか理解できません。
実行できるスクリプトを1つ欲しいのですが、次のようになります。configure-dns.sh mydomain.com
これは、「mydomain」のゾーンとエントリを作成し、現在のサーバーをホストおよび権限のあるサーバーとして設定します。
理想的には、新しいドメインのワークフローを次のようにしたいと思います。
だから、簡単なbashスクリプトでDNSエントリを追加できますか?
ありがとう、ディーン。
/etc/bind/named.confに追加します。
include "/etc/bind/domain-enabled.conf";
make dir:
# mkdir /etc/bind/domain-enabled/
スクリプト:
cat <<EOF >>/etc/bind/domain-enabled.conf
zone "$1" {
type master;
file "/etc/bind/domain-enabled/$1.db";
};
EOF
cat <<EOF >/etc/bind/domain-enabled/$1.db
\$TTL 604800
@ IN SOA ns1.$1. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.$1.
@ IN A $2
ns1 IN A $2
EOF
rndc reload
実行:
add-domain examle.com 127.0.0.1
はい、さまざまな雇用場所のさまざまなインフラストラクチャに対して、シェルスクリプトを使用してDNS管理を数回自動化しました。
他の疑似質問「なぜそれほど複雑でなければならないのか」については、DNSは一般的なケースでは些細なことではなく、BINDはすべての複雑なコーナーケースを処理しようとするためです。つまり、単純なものは他の方法ほど単純ではありませんが、どんなに毛深いものになっても、それを処理できることを知っておくとよいでしょう。