{ "info": { "author": "Richard Maynard", "author_email": "richard.maynard@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: System :: Systems Administration" ], "description": "Cloud DNS Tool\n=========\nA script to make working with Cloud DNS quicker\n\n## Requires\nPyRax -- PIP Installed Rackspace Python LIB for interacting with cloud services\nKeyCzar -- Optional, if storing encrypted credentials/values\n\n## Installing\nThe install relies on setup tools. If you already have setup tools it's as easy as:\n\n```\npython ./setup.py install \n``` \n\nIf not, you will need to add setup tools, there's a few ways to do it. Check out https://pypi.python.org/pypi/setuptools#installing-and-using-setuptools\n\n## Configuration File\nAll configuration options can be passed on the command line, but a configuration file will make things easier. If no configuration is specified on the command line (via the -c/--config-file) then $HOME/.cloud\\_dns.ini will be used (if it exists!)\n\n```\n[cloud_dns]\ntenant = Tenant/DDI\nusername = Username with access to tenant/ID\napikey = APIKey for the Username\nkeypath = Optional Value if keyczar is installed, you wish to encrypt items in the config file\n```\n\nIf you're using OSX and want to store values in the OSX System KeyChain then your config would look a little something like this:\n\n```\n[cloud_dns]\ntenant = USE_KEYRING['cloud_dns:tenant']\nusername = USE_KEYRING['cloud_dns:username']\napikey = USE_KEYRING['cloud_dns:apikey']\n```\n\nYou can still use KeyCzar encryption with items stored in the keychain, just include a keypath configuration item, and those keys will be used to try and decrypt values that are returned from the keychain. \n\n## Using KeyCzar\nThese are all done after a pip install of keyczar, or using OS packages to install (preferred on Debian/RHEL)\n* Choose a path for keys, this is what keypath in the config file will be set to\n```\nexport KEYPATH=\"/Users/ephur/Projects/CloudServers/src/cloud_dns/etc/keys\"\n```\n* Make the directory\n```\nmkdir -p ${KEYPATH}\n```\n* Create the keystore\n```\nkeyczart create --location=${KEYPATH} --purpose=crypt --name=\"cloud_dns\"\n```\n* Create a key\n```\nkeyczart addkey --location=${KEYPATH} --status=primary\n```\n* Then you can use the included script to encrypt your config values:\n\n```\n./crypt_string.py ${KEYPATH}\nPassword:\nNote, the beginning and ending COLON are not part of your crypted string\nThe crypted string is :abunchofjunk:\n```\n\n## How To use the tool\n\n#### Main Usage\n\n```\nusage: dns.py [-h] [-c CONFIG_FILE] [-k KEYPATH] [--tenant TENANT]\n [--username USERNAME] [--verbose] [--apikey APIKEY]\n [--update-keychain] [-v]\n\n {add_domain,list_domains,list_subdomains,delete_domain,add_record,add_bulk,list_records}\n ...\n\nA utility to simplify working with our DNS As A Service. Please keep in mind\nsome operations take awhile to complete thanks to our large number of\nresources, and having to make dozens of API calls for some of the requests.\nDoing operations for all domains on the account can take a very long time when\nall domains have to be retrieved, one page of records at a time.\n\npositional arguments:\n {add_domain,list_domains,list_subdomains,delete_domain,add_record,add_bulk,list_records}\n add_domain add a domain to the DNS system\n list_domains list all domains on the account\n list_subdomains list the subdomains for a domain\n delete_domain remove a domain from the DNS system\n add_record add a new record\n add_bulk add a bunch of records\n list_records list all records in a zone\n\noptional arguments:\n -h, --help show this help message and exit\n -c CONFIG_FILE, --config-file CONFIG_FILE\n configuration file for dns script (default:\n ~/.cloud_dns.ini) (default: None)\n -k KEYPATH, --keypath KEYPATH\n path to keyczar keys if apikey is encrpyted, can be\n specified in config file (default: None)\n --tenant TENANT Tenant (DDI) to operate on. Can be specified in config\n file. (default: None)\n --username USERNAME Username to authenticate with. Can be specified in\n config file. (default: None)\n --verbose more verbose output in random places! (default: False)\n --apikey APIKEY API key to use. Can be specified in config file,\n assumed encrypted if keypath specified (default: None)\n --update-keychain prompt to update keychain entries (if you're using\n them!) (default: False)\n -v, --version show program's version number and exit\n\nThis program makes changes to the production DNS systems.Please exercise\nextreme caution when making changes to DNS\n```\n\n#### Adding Records \n\n```\nusage: dns.py add_record [-h] [-t TTL] [-p PRIORITY] [-c COMMENT]\n domain name target type\n\npositional arguments:\n domain domain to add record to\n name the fully qualifed DNS record/hostname\n target ip address\n type type of record\n\noptional arguments:\n -h, --help show this help message and exit\n -t TTL, --ttl TTL ttl, default 300\n -p PRIORITY, --priority PRIORITY\n priority (for MX recrods only)\n -c COMMENT, --comment COMMENT\n comment associated with record\n```\n\n#### Bulk Adding Records \n\nTo add a lot of records use the add_bulk command, you can add as many records as you want. In the format of name,type,target. One item per line in a file and as many pairs on the command line as you like. The options ttl and priority apply to all records (if applicable) when creating them. If one record fails validation, NO records will be added.\n\n```\nusage: dns.py add_bulk [-h] [--from-file FROM_FILE] [-t TTL] [-p PRIORITY]\n domain [record [record ...]]\n\npositional arguments:\n domain domain to add record into\n record record in the form of NAME:TYPE:TARGET\n (www.foo.com,A,192.168.1.100\n wiki.foo.com,CNAME,www.foo.com), specify as many as\n you want\n\noptional arguments:\n -h, --help show this help message and exit\n --from-file FROM_FILE\n read records from a file, in the same format, one\n record per line in the file\n -t TTL, --ttl TTL the TTL for all records added, default is 3600,\n minimum is 300\n -p PRIORITY, --priority PRIORITY\n priority for any MX records, default 10\n```", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ephur/cloud_dns", "keywords": "rackspace cloud dns cli pyrax", "license": "Apache 2.0", "maintainer": null, "maintainer_email": null, "name": "cloud_dns_cli", "package_url": "https://pypi.org/project/cloud_dns_cli/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/cloud_dns_cli/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/ephur/cloud_dns" }, "release_url": "https://pypi.org/project/cloud_dns_cli/0.9.04/", "requires_dist": null, "requires_python": null, "summary": "A CLI Tool for interacting with RackSpace Cloud DNS", "version": "0.9.04" }, "last_serial": 909373, "releases": { "0.9.02": [ { "comment_text": "built for Darwin-13.0.0", "digests": { "md5": "757a660c43273c766b874d584307ad03", "sha256": "42a1ade6dcb54ca175d7c9e346749309fa3edd959c8807777005b06d19d682e4" }, "downloads": -1, "filename": "cloud_dns_cli-0.9.02.macosx-10.8-x86_64.tar.gz", "has_sig": true, "md5_digest": "757a660c43273c766b874d584307ad03", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 13741, "upload_time": "2013-10-29T18:15:15", "url": "https://files.pythonhosted.org/packages/a1/58/b2247b10cc29a1838949ff575f7e5d3f37ed5e825c804f3046c04db21890/cloud_dns_cli-0.9.02.macosx-10.8-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "3d806aa87824a443ea7bc734643417e8", "sha256": "913641ff605988694b2353f88e19dc041726118185e780059c659948fa11e67b" }, "downloads": -1, "filename": "cloud_dns_cli-0.9.02.tar.gz", "has_sig": true, "md5_digest": "3d806aa87824a443ea7bc734643417e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9914, "upload_time": "2013-10-29T18:15:19", "url": "https://files.pythonhosted.org/packages/cf/d7/a5f692e49b082789d0882e5d4049e28f6f5a66c0687cb7674e8ab776cc82/cloud_dns_cli-0.9.02.tar.gz" } ], "0.9.03": [ { "comment_text": "", "digests": { "md5": "1447487d5b08083a9a67744b94494301", "sha256": "25270862b3ada3e7222c8624da9e9ec169690bef3af150713d2978aa7cfe9b5e" }, "downloads": -1, "filename": "cloud_dns_cli-0.9.03.tar.gz", "has_sig": true, "md5_digest": "1447487d5b08083a9a67744b94494301", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10395, "upload_time": "2013-10-29T18:49:29", "url": "https://files.pythonhosted.org/packages/0d/95/3ca867d198ff2faa0245ea0cf69bc90c78351bbc3a811ed2a1f75d12511a/cloud_dns_cli-0.9.03.tar.gz" } ], "0.9.04": [ { "comment_text": "", "digests": { "md5": "ade6c2ca4ade29af07823d5630b966a6", "sha256": "7a9489e4b248624d03b5cd111d922fcc7129d6b8c4c26787fb52b86c6460a5a6" }, "downloads": -1, "filename": "cloud_dns_cli-0.9.04.tar.gz", "has_sig": true, "md5_digest": "ade6c2ca4ade29af07823d5630b966a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11095, "upload_time": "2013-11-01T21:04:31", "url": "https://files.pythonhosted.org/packages/01/bd/2cd453d8c1d548cfa352987a48e412b0c62acc882d0cf38fbb8ace39c3da/cloud_dns_cli-0.9.04.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ade6c2ca4ade29af07823d5630b966a6", "sha256": "7a9489e4b248624d03b5cd111d922fcc7129d6b8c4c26787fb52b86c6460a5a6" }, "downloads": -1, "filename": "cloud_dns_cli-0.9.04.tar.gz", "has_sig": true, "md5_digest": "ade6c2ca4ade29af07823d5630b966a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11095, "upload_time": "2013-11-01T21:04:31", "url": "https://files.pythonhosted.org/packages/01/bd/2cd453d8c1d548cfa352987a48e412b0c62acc882d0cf38fbb8ace39c3da/cloud_dns_cli-0.9.04.tar.gz" } ] }