管理 Route53 中的许多条目

tuc*_*caz 6 domain-name-system configuration-management amazon-route53

我们使用 Amazon Route53 作为我公司的主要 DNS。随着我们逐渐使用来自不同提供商的多种服务,他们每个人都请求某种 DNS 条目来验证我们的域和/或使用他们的服务。截至目前,我们的主要托管区域中有大约 60 个条目。

它开始变得令人困惑,因为亚马逊甚至不允许每个条目都有一个简单的描述字段,因此我们无需解析它就知道它的含义。

有没有更好/不同的方法来管理这个?

Vas*_*kis 3

推荐

开始学习使用 AWS 命令​​行,结合您自己开发的解决方案来管理您的 DNS 条目。

我个人有一个解决方案,它将多个文本文件(每个文件都包含客户标识和评论)合并到一个文件中,然后每当有更新时都会将其发送到我的权威 DNS。

有关 AWS Route53 CLI 的更多信息,请参见此处


示例解决方案

1)获取cli53

2)创建一个文件夹,并为每个客户填充 BIND 兼容的 zonefile.txt。

C:\zones\customer.com.txt
C:\zones\example.org.txt
C:\zones\loyal-customer.net.au.txt
Run Code Online (Sandbox Code Playgroud)

3)编写一个脚本,提取每个文件并将其上传到 AWS Route53:

电源外壳

$zonefileDir = "C:\zones\"

foreach ($file in (ls $zonefileDir -r))
{
    # Remove the '.txt' from each file, so we have the proper domain name
    $zone = ($file.name -replace "\.txt$","")

    # import the BIND zonefile and replace any existing records
    cli53 import $zone --file $file --replace --wait
}
Run Code Online (Sandbox Code Playgroud)

重击

directory="/etc/bind/zones/"
for file in `ls $directory`
do
    zone=`echo $file | grep -Po "^.*?(?=\.extension)"`
    cli53 import $zone --file $directory$file --replace --wait
done
Run Code Online (Sandbox Code Playgroud)

4)每当您需要进行更改时,您都可以在单独的客户区域文件中进行更改,您也可以使用目录将其分开。

5)在Git中同步所有区域文件,以便您可以跟踪每个区域文件的更改,以防需要恢复。