命令行客户端将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 Spring AOP:在方法之间交换信息   数组Java将字符串转换为字符[]   堆内存java。lang.OutOfMemoryError:PermGen space+java   安卓 Java。lang.ClassCastException:无法将活动强制转换到接口   java尝试使用气泡排序将随机整数数组从最大到最小排序   线程“main”java中的indexoutofboundsexception异常。lang.ArrayIndexOutofBounds异常:发电机处为3。main(Generator.java:35)   java“宽大”有什么用?   java SimpleCaptcha NoSuchMethodError   java在哪里部署Web服务的jar依赖项?   Java8获取列表中连续数字的函数方法   java为什么JWT令牌不安全?   java Uber API:在请求或发出令牌时指定多个作用域会返回无效的请求参数   java如何使用映射器从包含多个引用单元的JSON字符串中获取对象列表?   java警告匿名子类(?)没有串行版本   Jackson 2.9.0中的java JsonGenerationException。pr1   java试图打印多个catch语句   java如何创建一个sql表并获得每个唯一字段的平均价格?   java为什么SetMinimumSize设置最小高度而不是宽度?   java与使用POI合并的混淆   java在Xpath中使用“AND”和“normalizespace”时在不同浏览器中遇到不同的错误