{
"info": {
"author": "metagriffin",
"author_email": "mg.pypi@metagriffin.net",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python"
],
"description": "==========================\nHosted DNS Synchronization\n==========================\n\nThe `dnssync` script allows DNS zones hosted at various DNS providers\nto be synchronized with local bind-style text zone files. This allows\nthe DNS zones to be easily version-controlled, even if the service\nprovider does not directly support that.\n\nCurrently supported DNS service providers:\n\n* `DomainMonster `_ (via HTML scraping)\n* `PowerDNS `_\n* `ZoneEdit `_ (via HTML scraping)\n* `Register.LY `_ (via HTML scraping)\n\n\nProject\n=======\n\n* Homepage: https://github.com/metagriffin/dnssync\n* Bugs: https://github.com/metagriffin/dnssync/issues\n\n\nInstallation\n============\n\n.. code:: bash\n\n $ pip install dnssync\n\n\nUsage\n=====\n\nTo download a zone from PowerDNS:\n\n.. code:: bash\n\n $ dnssync download --driver powerdns --param apikey={KEY} --domain {DOMAIN} {ZONEFILE}\n\n\nThese command line options can also be stored in a configuration file,\ne.g. ``config.ini``:\n\n.. code:: ini\n\n driver = powerdns\n apikey = {KEY}\n domain = {DOMAIN}\n zonefile = {ZONEFILE}\n\nAnd then invoke dnssync as follows:\n\n.. code:: bash\n\n $ dnssync download --config config.ini\n\n\nTo upload a zone:\n\n.. code:: bash\n\n $ dnssync upload --config config.ini\n\n\nAnd to show differences between the hosted zone and the local\nzonefile:\n\n.. code:: bash\n\n $ dnssync diff --config config.ini\n\n\nAnd to test that a DNS server is serving the zone as specified:\n\n.. code:: bash\n\n $ dnssync verify --config config.ini\n\nNote that the ``verify`` command has some limitations in how accurate\nit can be. For example, record-level TTL's cannot be extracted from\nDNS (only remaining time, not total time, to expiry).\n\n\nConfiguration\n=============\n\nThe dnssync configuration file can specify the following options:\n\n* ``driver``:\n\n The driver for the specific DNS hosting service; currently supported\n values:\n\n * ``domainmonster``: for DomainMonster.com\n * ``powerdns``: for PowerDNS.net\n * ``zoneedit``: for ZoneEdit.com\n\n\n* ``domain``:\n\n The name of the zone to be operated on.\n\n\n* ``zonefile``:\n\n The filename of the local zone file. If specified in the\n configuration, it is taken to be relative to the configuration\n file. If specified on the command line, it is taken to be relative\n to the current working directory.\n\n\nDomainMonster\n-------------\n\nThe following options exist for the ``domainmonster`` driver:\n\n* ``username``:\n\n The username of the account to log into DomainMonster with.\n\n* ``password``:\n\n The password of the specified `username` account.\n\n.. IMPORTANT::\n\n The `domainmonster` driver uses HTML-scraping to operate on the\n hosted zone. This means that it, unfortunately, is quite brittle and\n may break if DomainMonster changes its HTML structure. If this\n appears to be happening, please report it to\n https://github.com/metagriffin/dnssync/issues and I'll fix it ASAP.\n\n\nPowerDNS\n--------\n\nThe following options exist for the ``powerdns`` driver:\n\n* ``apikey``:\n\n The API access key provided by PowerDNS. Note that an account must\n first be enabled (via the PowerDNS website) before it can be used.\n\n.. IMPORTANT::\n\n The PowerDNS service has, as of 2016/09/29, been end-of-lifed. That\n means that you need to already have an account and service purchased\n to be able to use this driver.\n\n\nZoneEdit\n--------\n\nThe following options exist for the ``zoneedit`` driver:\n\n* ``username``:\n\n The username of the account to log into ZoneEdit with.\n\n* ``password``:\n\n The password of the specified `username` account.\n\n.. IMPORTANT::\n\n The `zoneedit` driver uses HTML-scraping to operate on the hosted\n zone (despite what ZoneEdit advertises, they do NOT have an API to\n manage their DNS zones). This means that it, unfortunately, is quite\n brittle and may break if ZoneEdit changes its HTML structure. If\n this appears to be happening, please report it to\n https://github.com/metagriffin/dnssync/issues and I'll fix it ASAP.\n\n\nMultiple Profiles\n-----------------\n\nSeveral different profiles can be stored in the same configuration; each\nprofile should have a section named after the domain. Global parameters can\nbe stored in the \"DEFAULT\" section. For example:\n\n.. code:: ini\n\n [DEFAULT]\n\n # set some global parameters\n driver = powerdns\n apikey = 2f16eef6-5b1f-4d80-96f7-0237da03db48\n\n # set the default domain to manage\n domain = example.com\n\n [example.com]\n zonefile = example-com.zone\n\n [other-example.com]\n zonefile = other-example-com.zone\n\n\nThen, to upload the zones:\n\n.. code:: bash\n\n # upload 'example.com'\n $ dnssync upload -c config.ini\n\n # upload 'other-example.com'\n $ dnssync upload -c config.ini -d other-example.com\n\n\nZonefile Local Variables\n------------------------\n\nThe zonefile can also specify the configuration file via emacs-style\nlocal variables. The configuration file specified on the command line,\nhowever, takes precedence. For example, given the following\n``example-com.zone`` zonefile:\n\n.. code:: text\n\n ;; -*- coding: utf-8; dnssync-config: config.ini -*-\n\n $ORIGIN example.com.\n example.com. 3600 IN SOA ...\n ... more DNS records ...\n\nThe following command will pull all options from the ``config.ini``\nfile:\n\n.. code:: bash\n\n # report differences\n $ dnssync diff example-com.zone\n\n # upload a new version\n $ dnssync upload example-com.zone\n",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://github.com/metagriffin/dnssync",
"keywords": "dns zone synchronize download upload diff client command line cli powerdns",
"license": "GPLv3+",
"maintainer": "",
"maintainer_email": "",
"name": "dnssync",
"package_url": "https://pypi.org/project/dnssync/",
"platform": "any",
"project_url": "https://pypi.org/project/dnssync/",
"project_urls": {
"Homepage": "http://github.com/metagriffin/dnssync"
},
"release_url": "https://pypi.org/project/dnssync/0.2.7/",
"requires_dist": null,
"requires_python": "",
"summary": "Command line client to synchronize DNS hosted zones with local zone files",
"version": "0.2.7"
},
"last_serial": 2679535,
"releases": {
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "9ebf43232a4ec6c3960ffd3068a8362a",
"sha256": "cca52c20beefc1de5fe6c4b660408f62e47132162afc850eac8d7eef8205f2bb"
},
"downloads": -1,
"filename": "dnssync-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "9ebf43232a4ec6c3960ffd3068a8362a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 22624,
"upload_time": "2015-01-01T16:02:02",
"url": "https://files.pythonhosted.org/packages/0b/25/db770db2f7bf030c0d501ec56a46e73ed532a545df67a6e585b809f9de1f/dnssync-0.2.0.tar.gz"
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "c0f4ca7d3e997a7748ffb4b615df028a",
"sha256": "6cc6045efc3f9b145799a3313b9aa860363463309cbd19a071d9f111ae1df234"
},
"downloads": -1,
"filename": "dnssync-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "c0f4ca7d3e997a7748ffb4b615df028a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 24805,
"upload_time": "2015-01-02T21:13:13",
"url": "https://files.pythonhosted.org/packages/21/2e/b652ee58a7ce7481e11ffe8fbb1c888b6af3aa24ddf78846782f56f6b31c/dnssync-0.2.1.tar.gz"
}
],
"0.2.2": [
{
"comment_text": "",
"digests": {
"md5": "10de19413b0f0f86908dbaac62b31d6c",
"sha256": "83a8fd5158c84faab5f1e364e48eacc1a9f7c17cb7edd413999d2d43d40dfccb"
},
"downloads": -1,
"filename": "dnssync-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "10de19413b0f0f86908dbaac62b31d6c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 29315,
"upload_time": "2015-01-06T21:37:31",
"url": "https://files.pythonhosted.org/packages/62/18/8d7ea04880dbf74c7c42a3cd84fc167c24f61b6b1aa793192ba19a449562/dnssync-0.2.2.tar.gz"
}
],
"0.2.3": [
{
"comment_text": "",
"digests": {
"md5": "d8ae7130d3394379112d157b6c4df15f",
"sha256": "1f00ef370e49f3763c3ec51e55198f3ef1a83e12d851e42c70f5f56f29e3be23"
},
"downloads": -1,
"filename": "dnssync-0.2.3.tar.gz",
"has_sig": false,
"md5_digest": "d8ae7130d3394379112d157b6c4df15f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 29390,
"upload_time": "2016-03-30T20:11:33",
"url": "https://files.pythonhosted.org/packages/6f/bb/0e3772c6e16f0fbec0017db8c1f0ca45d0c3bdaaf473475f4bee2904a50e/dnssync-0.2.3.tar.gz"
}
],
"0.2.4": [
{
"comment_text": "",
"digests": {
"md5": "457a0ffcf4bb63f78d8e2542ce3b37df",
"sha256": "7b5a76c52658a480e5f8f88ce6101166509775f4dc904c1488499ba07b2be2a0"
},
"downloads": -1,
"filename": "dnssync-0.2.4.tar.gz",
"has_sig": false,
"md5_digest": "457a0ffcf4bb63f78d8e2542ce3b37df",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 30644,
"upload_time": "2016-05-19T15:17:43",
"url": "https://files.pythonhosted.org/packages/ed/2a/1015cb1904863c56b8754feb8445fc55bc6cd58c9fcc43054a935e3bf26b/dnssync-0.2.4.tar.gz"
}
],
"0.2.6": [
{
"comment_text": "",
"digests": {
"md5": "a330eb262de094fd4eeec035c4dd4a73",
"sha256": "e200cd8846986f7ffa62098eea0c16fba7da7d590c4953812538bb199463da72"
},
"downloads": -1,
"filename": "dnssync-0.2.6.tar.gz",
"has_sig": false,
"md5_digest": "a330eb262de094fd4eeec035c4dd4a73",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 38652,
"upload_time": "2016-12-02T19:21:28",
"url": "https://files.pythonhosted.org/packages/dd/6a/90863669e497892b6a6ca3f12f2e25e8413a3ba3e75815a7b3920c83bf6e/dnssync-0.2.6.tar.gz"
}
],
"0.2.7": [
{
"comment_text": "",
"digests": {
"md5": "3fd6588c7cc0e8e5337ded09dceae90e",
"sha256": "4f4028ce27be0d51911254c08bace6af5dfd5d6172a87dab87224f310a47fb46"
},
"downloads": -1,
"filename": "dnssync-0.2.7.tar.gz",
"has_sig": false,
"md5_digest": "3fd6588c7cc0e8e5337ded09dceae90e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 41940,
"upload_time": "2017-03-03T03:20:31",
"url": "https://files.pythonhosted.org/packages/47/eb/7a574259ddd84b69c4af6cfe8a7e1a1ede45167801f60f3f9153108ba0c5/dnssync-0.2.7.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "3fd6588c7cc0e8e5337ded09dceae90e",
"sha256": "4f4028ce27be0d51911254c08bace6af5dfd5d6172a87dab87224f310a47fb46"
},
"downloads": -1,
"filename": "dnssync-0.2.7.tar.gz",
"has_sig": false,
"md5_digest": "3fd6588c7cc0e8e5337ded09dceae90e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 41940,
"upload_time": "2017-03-03T03:20:31",
"url": "https://files.pythonhosted.org/packages/47/eb/7a574259ddd84b69c4af6cfe8a7e1a1ede45167801f60f3f9153108ba0c5/dnssync-0.2.7.tar.gz"
}
]
}