jet-li / tonicdnscli Goto Github PK
View Code? Open in Web Editor NEWThis project forked from mkouhei/tonicdnscli
TonicDNS client tool
Home Page: http://pypi.python.org/pypi/tonicdnscli
License: GNU General Public License v3.0
This project forked from mkouhei/tonicdnscli
TonicDNS client tool
Home Page: http://pypi.python.org/pypi/tonicdnscli
License: GNU General Public License v3.0
==================================== tonicdnscli is TonicDNS Client tool. ==================================== This command line tool for TonicDNS API. TonicDNS is RESTful API for PowerDNS. Convert readble text record to JSON, and create or delete zone records with TonicDNS. Requirements ------------ * Python 2.7 or Python 3.2 later. Setup ----- :: $ git clone https://github.com/mkouhei/tonicdnscli $ cd tonicdnscli $ sudo python setup.py install Usage ----- Input file (example.org.txt) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ examples/example.org.txt:: # name type content ttl priority test0.example.org A 10.10.10.10 86400 test1.example.org A 10.10.10.11 86400 test2.example.org A 10.10.10.12 86400 example.org MX mx.example.org 86400 0 example.org MX mx2.example.org 86400 10 mx.example.org A 10.10.11.10 3600 mx2.example.org A 10.10.11.10 3600 Setting default options to config file ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ An alternative method of command options that use the config file. Copy examples/tdclirc.sample to `$HOME/.tdclirc`. `password` key to set password in plain text, it is recommended that you remove this line, `-P` option is used.:: [global] server: ns.example.org [auth] username: tonicuser password: tonicpw Print converted JSON ^^^^^^^^^^^^^^^^^^^^ Convert to JSON and print.:: $ tonicdnscli show sample/example.org.txt { "records": [ { "content": "10.10.10.10", "name": "test0.example.org", "ttl": "86400", "type": "A" }, { "content": "10.10.10.11", "name": "test1.example.org", "ttl": "86400", "type": "A" }, { "content": "10.10.10.12", "name": "test2.example.org", "ttl": "86400", "type": "A" }, (snip) Retrieve all zones ^^^^^^^^^^^^^^^^^^ Get all zones and print.:: $ tonicdnscli get -u tonicusername -P +-------------+--------+-----------------+ | name | type | notified_serial | +-------------+--------+-----------------+ | example.org | MASTER | 2012052201 | | example.net | MASTER | 2012060502 | +-------------+--------+-----------------+ Retrieve records ^^^^^^^^^^^^^^^^ Get records of specific zone and print.:: $ tonicdnscli get -s ns.example.org -d example.org -u tonicusername -P zone: example.org SOA record: ns.example.org hostmaster.example.org 2012042403 ttl: 86400 change date: 1341314161 example.org +------+------+-----------------+-------+------+-------------+ | name | type | content | ttl | prio | change date | +------+------+-----------------+-------+------+-------------+ | | NS | ns.example.org | 86400 | - | - | | | NS | ns2.example.org | 86400 | - | - | | ns. | A | 192.168.0.100 | 86400 | - | - | | ns2. | A | 192.168.0.101 | 86400 | - | - | | www. | A | 192.168.0.1 | 86400 | - | - | +------+------+-----------------+-------+------+-------------+ Create single record ^^^^^^^^^^^^^^^^^^^^ Create single record with specific zone.:: $ tonicdnscli create -s ns.example.org -u tonicusername -P \ --domain example.org --name www2.example.org --rtype A --content 10.10.10.10 true Create records ^^^^^^^^^^^^^^ Create multi records with specific zone.:: $ tonicdnscli bulk_create -s ns.example.org -u tonicusername -P examples/example.org.txt true Update single record ^^^^^^^^^^^^^^^^^^^^ Update single record with specific zone.:: $ tonicdnscli update -s ns.example.org -u tonicdnsusername -P \ --domain example.org --name www2.example.org --rtype A --content 10.10.10.10 --new-content 10.10.10.11 true (<- delete record) true (<- create record) Delete single records ^^^^^^^^^^^^^^^^^^^^^ Delete single record with specific zone.:: $ tonicdnscli delete -s ns.example.org -u tonicusername -P \ --domain example.org --name www2.example.org --rtype A --content 10.10.10.11 true Delete records ^^^^^^^^^^^^^^ Delete multi records with specific zone.:: $ tonicdnscli bulk_delete -s ns.example.org -u tonicusername -P examples/example.org.txt true Update SOA ^^^^^^^^^^ Update SOA record or speficie zone.:: $ tonicdnscli soa -s ns.example.org -u tonicusername -P --domain example.org true (<- create record) true (<- delete record) If you want to update automatically, append next variable to global section of ~/.tdclirc.:: [global] (snip) soa_update: True Create zone for MASTER ^^^^^^^^^^^^^^^^^^^^^^ Master DNS server IP address with `--dnsaddr` option.:: $ tonicdnscli zone_create -s ns.example.org -u tonicusername -P --domain example.net --dnsaddr 192.168.0.100 true true true Create zone for SLAVE ^^^^^^^^^^^^^^^^^^^^^ Require `-S` option.:: $ tonicdnscli zone_create -s ns.example.org -u tonicusername -P --domain example.net --dnsaddr 192.168.0.100 -S true (<- create template) true (<- create zone) true (<- delete template) Create zone for NATIVE ^^^^^^^^^^^^^^^^^^^^^^ Require `-N` option.:: $ tonicdnscli zone_create -s ns.example.org -u tonicusername -P --domain example.net --dnsaddr 192.168.0.100 -N true (<- create template) true (<- create zone) true (<- delete template) Delete zone ^^^^^^^^^^^ Delete specific zone.:: $ tonicdnscli zone_delete -s ns.example.org -u tonicusername -P --domain example.com true Retrieve templates ^^^^^^^^^^^^^^^^^^ Get tepmlates and print.:: $ tonicdnscli tmpl_get -s ns.example.org -u tonicusername -P identifier : example_net description: ============================================================================== name type content ttl prio example.net SOA > ns.example.net hostmaster.example.net 2012070501 3600 900 86400 3600 3600 example.net NS ns.example.net 3600 ns.example.net A 192.168.0.100 3600 ============================================================================== identifier : example2_net description: (snip) Delete template ^^^^^^^^^^^^^^^ Delete specific template.:: $ tonicdnscli tmpl_delete -s ns.example.org -u tonicusername -P --template example_com true Contribute ---------- Firstly copy pre-commit hook script.:: $ cp -f utils/pre-commit.txt .git/hooks/pre-commit Next install python2.7 later, and py.test. Below in Debian GNU/Linux Sid system,:: $ sudo apt-get install python python-pytest Then checkout 'devel' branch for development, commit your changes. Before pull request, execute git rebase. See also -------- * `TonicDNS <https://github.com/Cysource/TonicDNS>`_ * `PowerDNS <http://www.powerdns.com>`_
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.