命令行客户端将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异常无法从资源中找到可绘制的图标   Android 6.0.0上应用程序崩溃后java Android VM重新启动   当我将java项目导出到runnable jar中时,log4j不会记录日志   java在Jtable netbeans中显示MS访问数据   为什么不呢。Java中的NETstyle委托而不是闭包?   java如何正确使用如此多的CPU停止命令队列循环?   java使用==   java如何将scriptlet转换为JSTL?   java mvn测试失败,但通过IntelliJ IDEA运行测试   java为什么文件在使用另一个按钮后不会被删除   java JDBC MySQL不读取最新插入   java如何在安卓中绘制从Firebase数据库检索到的数据   java HTML解析getElementByClass方法   java Arraylist hashmap 安卓