Powerdns web API客户端和接口
python-powerdns的Python项目详细描述
python powerdns—powerdns web api python客户端和接口
联系人:denis‘jawa’pompiliodpompilio@vente-privee.com
来源:https://github.com/vente-privee/python-powerdns
关于
此包提供直观且易于使用的python客户端和界面 对于powerdns web api。
安装
python setup.py install
或
pip install python-powerdns
助手
pdns区域创建者
usage: pdns-create-zone [-h] -A API -K APIKEY -z ZONE -o ORIGIN -c ZONE -d DNS [-t TIMERS] PowerDNS zone creator optional arguments: -h, --help show this help message and exit -A API, --api API PowerDNS api (eg. https://api.domain.tld/api/v1 -K APIKEY, --key APIKEY PowerDNS api key -z ZONE, --zone ZONE Zone name (canonical) -o ORIGIN, --origin ORIGIN Zone origin (for SOA) -c ZONE, --contact ZONE Zone contact (for SOA) -d DNS, --dns DNS Zone nameservers comma separated -t TIMERS, --timers TIMERS Zone timers (eg. '28800 7200 604800 86400')
./bin/pdns-create-zone -A "https://api.domain.tld/api/v1" -K "xxxxxxxxx"\ -z "myzone.domain.tld."\ -o "ns01.domain.tld." -c "admin.domain.tld."\ -d "nsd01.domain.tld.,nsd02.domain.tld." powerdns.interface INFO: listing available PowerDNS servers powerdns.interface INFO: getting available servers from API powerdns.client INFO: request: GET https://api.domain.tld/api/v1/servers powerdns.client INFO: request response code: 200 powerdns.interface INFO: 1 server(s) listed powerdns.interface INFO: creation of zone: myzone.domain.tld. powerdns.client INFO: request: POST https://api.domain.tld/api/v1/servers/localhost/zones powerdns.client INFO: request response code: 201 powerdns.interface INFO: zone myzone.domain.tld. successfully created
示例
基本初始化:
importpowerdnsPDNS_API="https://my.pdns.api.domain.tld/api/v1"PDNS_KEY="mysupersecretbase64key"api_client=powerdns.PDNSApiClient(api_endpoint=PDNS_API,api_key=PDNS_KEY)api=powerdns.PDNSEndpoint(api_client)
创建和删除区域:
fromdatetimeimportdate# Creating new zone on first PowerDNS serverserial=date.today().strftime("%Y%m%d00")soa="ns0.domain.tld. admin.domain.tld. %s 28800 7200 604800 86400"%serialsoa_r=powerdns.RRSet(name='test.python-powerdns.domain.tld.',rtype="SOA",records=[(soa,False)],ttl=86400)zone=api.servers[0].create_zone(name="test.python-powerdns.domain.tld.",kind="Native",rrsets=[soa_r],nameservers=["ns1.domain.tld.","ns2.domain.tld."])# Getting new zone infoprint(zone)print(zone.details)# Deleting newly created zoneapi.servers[0].delete_zone(zone.name)
创建和删除DNS记录:
zone=api.server[0].get_zone("test.python-powerdns.domain.tld.")zone.create_records([powerdns.RRSet('a','A',[('1.1.1.1',False)]),powerdns.RRSet('b','A',['1.1.1.2','1.1.1.3']),powerdns.RRSet('c','A',[('1.1.1.4',False)]),powerdns.RRSet('d','CNAME',['a'])])zone.delete_record([powerdns.RRSet('a','A',[('1.1.1.1',False)]),powerdns.RRSet('d','CNAME',['a'])])
区域备份和恢复:
# Backup every zone of every PowerDNS serverforserverinapi.servers:backup_dir="backups/%s"%server.idforzoneinserver.zones:zone.backup(backup_dir)# Restore a single zone on first PowerDNS serverzone_file="backups/pdns-server-01/my.domain.tld.json"api.servers[0].restore_zone(zone_file)
许可证
麻省理工学院许可证(见许可证文件)
其他
╚⊙ ⊙╝
╚═(███)═╝
╚═(███)═╝
╚═(███)═╝
╚═(███)═╝
╚═(███)═╝
╚═(███)═╝