命令行客户端将DNS托管区域与本地区域文件同步

dnssync的Python项目详细描述


dnssync脚本允许在不同的dns提供程序上托管dns区域 与本地绑定样式的文本区域文件同步。这允许 DNS区域易于版本控制,即使服务 提供程序不直接支持。

当前支持的DNS服务提供商:

安装

$ pip install dnssync

用法

从powerdns下载区域:

$ dnssync download --driver powerdns --param apikey={KEY} --domain {DOMAIN}{ZONEFILE}

这些命令行选项也可以存储在配置文件中, 例如config.ini

driver=powerdnsapikey={KEY}domain={DOMAIN}zonefile={ZONEFILE}

然后调用dnssync,如下所示:

$ dnssync download --config config.ini

上载区域:

$ dnssync upload --config config.ini

以及显示托管区域和本地区域之间的差异 分区文件:

$ dnssync diff --config config.ini

并测试DNS服务器是否按指定的方式为区域提供服务:

$ dnssync verify --config config.ini

注意,verify命令在精度方面有一些限制 可能是的。例如,无法从 DNS(只有剩余时间,而不是总时间,到期)。

配置

dnssync配置文件可以指定以下选项:

  • driver

    特定DNS宿主服务的驱动程序;当前支持 值:

    • domainmonster:对于domainmonster.com
    • powerdns:对于powerdns.net
    • zoneedit:用于zoneedit.com
  • domain

    要操作的区域的名称。

  • zonefile

    本地区域文件的文件名。如果在 配置,它被认为是相对于配置 文件。如果在命令行中指定,则将其视为相对的 到当前工作目录。

域名怪兽

以下选项为^ {tt4}$$驱动程序:

  • username

    要用其登录到domainmonster的帐户的用户名。

  • password

    指定的用户名帐户的密码。

重要

驱动程序使用html抓取操作 托管区域。这意味着,不幸的是,它非常脆弱 如果domainmonster更改其html结构,则可能会中断。如果这个 似乎正在发生,请报告给 https://github.com/metagriffin/dnssync/issues我会尽快修好的。

powerdns

对于{{TT5}$驱动程序存在以下选项:

  • apikey

    powerdns提供的api访问密钥。注意,帐户必须 首先启用(通过powerdns网站),然后才能使用它。

重要

截至2016年9月29日,powerdns服务已经终止。那个 意味着您需要已经购买了帐户和服务 才能使用这个驱动程序。

区域编辑

< > >以下选项存在:
  • username

    要登录到ZoneEdit的帐户的用户名。

  • password

    指定的用户名帐户的密码。

重要

zoneedit驱动程序使用html抓取在托管的 区域(尽管ZoneEdit发布了什么广告,但它们没有 管理其DNS区域)。这意味着不幸的是 易碎,如果ZoneEdit更改其HTML结构可能会断裂。如果 似乎发生了这种情况,请报告给 https://github.com/metagriffin/dnssync/issues我会尽快修好的。

多个配置文件

几个不同的配置文件可以存储在同一配置中;每个配置文件 配置文件应该有一个以域命名的节。全局参数可以 存储在“defau”中“部分。例如:

[DEFAULT]# set some global parametersdriver=powerdnsapikey=2f16eef6-5b1f-4d80-96f7-0237da03db48# set the default domain to managedomain=example.com[example.com]zonefile=example-com.zone[other-example.com]zonefile=other-example-com.zone

然后,要上载区域:

# upload 'example.com'
$ dnssync upload -c config.ini

# upload 'other-example.com'
$ dnssync upload -c config.ini -d other-example.com

区域文件局部变量

zonefile还可以通过emacs样式指定配置文件 局部变量。在命令行中指定的配置文件, 但是,优先考虑。例如,假设 example-com.zonezonefile:

;; -*- coding: utf-8; dnssync-config: config.ini -*-

$ORIGIN example.com.
example.com. 3600 IN SOA ...
... more DNS records ...

以下命令将从^{tt1}中提取所有选项$ 文件:

# report differences
$ dnssync diff example-com.zone

# upload a new version
$ dnssync upload example-com.zone

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Kafka producer大量内存使用(泄漏?)   java NullPointerException。。。正在插入数据但无法检索数据[Mysql DB]   java spring+jpa+hibernate=没有可用于当前线程的实际事务的EntityManager无法可靠地处理“persist”调用   getelementbyid在没有ID的情况下如何在java中使用GetElementsById   java有没有一种使用WatchService强制轮询的方法?   java将值从jframe传递给另一个jframe并使用它   Java/Groovy中带重试的反应式事件处理   具有两个包装器元素的java Jackson XML ArrayList输出   java总是在范围内使用不同的随机元素   取消选择java下拉列表值   多线程如何在Java中为对象的不同成员拥有不同的同步块   java如何使用多线程从文本文件中读取输入   java Spring启动附加崩溃命令   java使用公共或单独的actionPerfomed方法有什么区别   java用Spring3.0中的SpEL替换JSP中的EL   java作为windows服务运行应用程序时无法访问共享文件夹   java xml 1.1规范中的“解析数据”是什么意思?   以编程方式设置JComboBox索引时java触发ItemListener   java Android WebView:只加载HTML,不加载JS或CSS(在某些设备中)   Java:计算do/while循环的数量