{ "info": { "author": "Barnaby Gray", "author_email": "barnaby@pickle.me.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Topic :: Utilities" ], "description": "**WARNING**\r\n===========\r\n**cli53 0.5 (python version) is no longer being actively maintained, to install the latest version see:**\r\n\r\nhttps://github.com/barnybug/cli53/#installation\r\n\r\ncli53 - Command line script to administer the Amazon Route 53 DNS service\r\n=========================================================================\r\n\r\n\r\nIntroduction\r\n------------\r\ncli53 provides import and export from BIND format and simple command line management of\r\nRoute 53 domains.\r\n\r\nFeatures:\r\n\r\n- create hosted zones\r\n\r\n- delete hosted zones\r\n\r\n- list hosted zones\r\n\r\n- import from BIND format\r\n\r\n- export to BIND format\r\n\r\n- create resource records\r\n\r\n- delete resource records\r\n\r\n- works with BIND format zone files we all know and love - no need to edit\r\n <ChangeResourceRecordSetsRequest> XML!\r\n\r\n- create AWS weighted records\r\n\r\n- create AWS Alias records to ELB\r\n\r\n- create AWS latency-based routing records\r\n\r\n- dynamic record creation for EC2 instances\r\n\r\nInstallation\r\n------------\r\n\r\nYou'll need to install pip if you've not installed it already.\r\n\r\nUbuntu systems:\r\n\r\n\t$ apt-get install python python-pip\r\n\r\nRedhat systems (eg Amazon Linux):\r\n\r\n\t$ yum install python27 python27-pip\r\n\r\nThen install cli53:\r\n\r\n\t$ sudo pip install cli53\r\n\r\nOr on Redhat/Amazon Linux:\r\n\r\n\t$ sudo pip-2.7 install cli53\r\n\r\n(You may need to add /usr/local/bin to your $PATH)\r\n\r\nYou can then run cli53 from your path:\r\n\r\n\t$ cli53\r\n\r\nYou need to set your Amazon credentials in the environment as AWS_ACCESS_KEY_ID\r\nand AWS_SECRET_ACCESS_KEY or configure them in ~/.boto. For more information see:\r\nhttp://code.google.com/p/boto/wiki/BotoConfig\r\n\r\nGetting Started\r\n---------------\r\n\r\nCreate a hosted zone::\r\n\r\n\t$ cli53 create example.com --comment 'my first zone'\r\n\r\nCheck what we've done::\r\n\r\n\t$ cli53 list\r\n\r\nImport a BIND zone file::\r\n\r\n\t$ cli53 import example.com --file zonefile.txt\r\n\r\nReplace with an imported zone, waiting for completion::\r\n\r\n\t$ cli53 import example.com --file zonefile.txt --replace --wait\r\n\r\nManually create some records::\r\n\r\n\t$ cli53 rrcreate example.com www A 192.168.0.1 --ttl 3600\r\n\t$ cli53 rrcreate example.com www A 192.168.0.2 --ttl 3600 --replace\r\n\t$ cli53 rrcreate example.com '' MX '10 192.168.0.1' '20 192.168.0.2'\r\n\r\nExport as a BIND zone file (useful for checking)::\r\n\r\n\t$ cli53 export example.com\r\n\r\nCreate some weighted records::\r\n\r\n\t$ cli53 rrcreate example.com www A 192.168.0.1 --weight 10 --identifier server1\r\n\t$ cli53 rrcreate example.com www A 192.168.0.2 --weight 20 --identifier server2\r\n\r\nCreate an alias to ELB::\r\n\r\n\t$ cli53 rrcreate example.com www ALIAS 'ABCDEFABCDE dns-name.elb.amazonaws.com.'\r\n\r\nFurther documentation is available, e.g.::\r\n\r\n\t$ cli53 --help\r\n\t$ cli53 rrcreate --help\r\n\r\n\r\nBroken CNAME exports (GoDaddy)\r\n------------------------------\r\nSome DNS providers export broken bind files, without the trailing '.'\r\non CNAME records. This is a requirement for absolute records\r\n(i.e. ones outside of the qualifying domain).\r\n\r\nIf you see CNAME records being imported to route53 with an extra\r\nmydomain.com on the end (e.g. ghs.google.com.mydomain.com), then you\r\nneed to fix your zone file before importing:\r\n\r\n $ perl -pe 's/(CNAME\\s+[-a-zA-Z0-9.-_]+)(?!.)$/$1./i' broken.txt > fixed.txt\r\n\r\nDynamic records for EC2 instances\r\n---------------------------------\r\nThis functionality allows you to give your EC2 instances memorable DNS names\r\nunder your domain. The name will be taken from the 'Name' tag on the instance,\r\nif present, and a CNAME record created pointing to the instance's public DNS\r\nname (ec2-...).\r\n\r\nIn the instance Name tag, you can either use a partial host name 'app01.prd' or\r\n'app01.prd.mydomain.com' - either creates the correct record.\r\n\r\nThe CNAME will resolve to the external IP address outside EC2 and to the\r\ninternal IP address from another instance inside EC2.\r\n\r\nAnother feature supported is whilst an instance is stopped, if you specify the\r\nparameter '--off fallback.mydomain.com' you can have the dns name fallback to\r\nanother host. As an example, a holding page could be served up from this\r\nindicating the system is off currently.\r\n\r\nYou can use the '--match' parameter (regular expression) to select a subset of\r\nthe instances in the account to apply to.\r\n\r\nGenerally you'll configure cli53 to run regularly from your crontab like so::\r\n\r\n */5 * * * cli53 instances example.com\r\n\r\nThis runs every 5 minutes to ensure the records are up to date. When there no\r\nchanges, this will purely consist of a call to list the domain and the describe\r\ninstances API.\r\n\r\nIf the account the EC2 instances are in differs from the account the route53\r\ndomain is managed under, you can configure the EC2 credentials in a separate\r\nfile and pass the parameter '--credentials aws.cfg' in. The credentials file is\r\nof the format::\r\n\r\n [profile prd]\r\n aws_access_key_id=...\r\n aws_secret_access_key=...\r\n region=eu-west-1\r\n\r\n [profile qa]\r\n aws_access_key_id=...\r\n aws_secret_access_key=...\r\n region=eu-west-1\r\n\r\nAs illustrated above, this also allows you to discover instances from multiple\r\naccounts - for example if you split prd and qa. cli53 will scan all '[profile\r\n...]' sections.\r\n\r\nPrivate/public zones\r\n--------------------\r\nTo manage zones that have both a private and a public zone, you must specify the\r\nzone ID instead the domain name, which is ambiguous. This is the 13 character ID\r\nafter '/hostedzone/' you can see in the output to 'cli53 list'. eg::\r\n\r\n $ cli53 rrcreate ZZZZZZZZZZZZZ name A 127.0.0.1\r\n\r\n\r\nCaveats\r\n-------\r\nAs Amazon limits operations to a maximum of 100 changes, if you\r\nperform a large operation that changes over 100 resource records it\r\nwill be split. An operation that involves deletes, followed by updates\r\nsuch as an import with --replace will very briefly leave the domain\r\ninconsistent. You have been warned!\r\n\r\nChangelog\r\n---------\r\n0.5.2\r\n\r\n- A note about new version.\r\n\r\n0.5.1\r\n\r\n- Set EvaluateTargetHealth to 'true' when creating failover ALIASes\r\n\r\n- Raise a ValueError when the type of alias is not of the supported ones\r\n\r\n- Restrict the values for the '--failover' argument\r\n\r\n- Add retry for convert in which rate limitting can occur.\r\n\r\n0.5.0\r\n\r\n- Remove 'xml' command. Fixes #99\r\n\r\n- Handling throttling gracefully.\r\n\r\n- Fixes to tests\r\n\r\n- Handle Route53 throttling responses while waiting\r\n\r\n- Allow specifying an identifier when delete RRs\r\n\r\n- Support failover record types (based on work of Lee-Ming Zen)\r\n\r\n- Clarify using Zone ID. Fixes #91.\r\n\r\n0.4.4\r\n\r\n- instances option (-i) to create internal records (@asmap)\r\n\r\n- instances option (-a) to create A records (@asmap)\r\n\r\n- Making cli53 importable as python module (@aleszoulek)\r\n\r\n- Create DNS records for instances without public addresses (@andrewklau)\r\n\r\n0.4.3\r\n\r\n- Handle duplicate named instances. Fixes #81\r\n\r\n0.4.2\r\n\r\n- Revert \"Support failover record types\" ref #79\r\n\r\n0.4.1\r\n\r\n- Support failover record types (thanks @leezen)\r\n\r\n- Optimize comparisons for speed up 'import --replace'. Thanks to @goekesmi. Fixes #75.\r\n\r\n- add required EvaluateTargetHealth element for Alias records (thanks @fitt)\r\n\r\n0.4.0\r\n\r\n- Improve logging\r\n\r\n- Add dynamic EC2 instance registration\r\n\r\n- Fix exception on unsupported attributes\r\n\r\n- Handle / in zone names for arpa domains. fixes #61.\r\n\r\n- Nicer error messages on invalid zone files\r\n\r\n- pep8/code formatting\r\n\r\n0.3.6\r\n\r\n- Support for zone comments\r\n\r\n0.3.5\r\n\r\n- Fix for zero weighted records\r\n\r\n0.3.3\r\n\r\n- Check boto version\r\n\r\n0.3.2\r\n\r\n- Added functionality to rrlist, rrcreate, import and export so that\r\n they're able to work with Alias records that have an identifier and\r\n a latency based or weighted routing policy. (xbe)\r\n\r\n- Improve error message when boto fails to import\r\n\r\n0.3.1\r\n\r\n- Added support for Latency-based routing. For the moment to use this\r\n you'll need the boto develop branch: pip install\r\n https://github.com/boto/boto/tarball/develop\r\n\r\n0.3.0\r\n\r\n- Added support for AWS extensions: weighted records and aliased\r\n records.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://loads.pickle.me.uk/cli53/", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "cli53", "package_url": "https://pypi.org/project/cli53/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/cli53/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://loads.pickle.me.uk/cli53/" }, "release_url": "https://pypi.org/project/cli53/0.5.2/", "requires_dist": null, "requires_python": null, "summary": "Command line script to administer the Amazon Route 53 DNS service", "version": "0.5.2" }, "last_serial": 2442292, "releases": { "0.5.0": [], "0.5.1": [], "0.5.2": [ { "comment_text": "", "digests": { "md5": "51997b77f24cb4e4576ba9e896d6f56d", "sha256": "d44906c5e017e6ea9fdd1d7cd0062107f845798cb836aac61095b1c78f376242" }, "downloads": -1, "filename": "cli53-0.5.2.tar.gz", "has_sig": false, "md5_digest": "51997b77f24cb4e4576ba9e896d6f56d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20594, "upload_time": "2015-12-16T21:02:22", "url": "https://files.pythonhosted.org/packages/ca/3d/2002bc3467938ca2c5f832592cceb98270eb8c6857966473c74a9a3895a8/cli53-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "51997b77f24cb4e4576ba9e896d6f56d", "sha256": "d44906c5e017e6ea9fdd1d7cd0062107f845798cb836aac61095b1c78f376242" }, "downloads": -1, "filename": "cli53-0.5.2.tar.gz", "has_sig": false, "md5_digest": "51997b77f24cb4e4576ba9e896d6f56d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20594, "upload_time": "2015-12-16T21:02:22", "url": "https://files.pythonhosted.org/packages/ca/3d/2002bc3467938ca2c5f832592cceb98270eb8c6857966473c74a9a3895a8/cli53-0.5.2.tar.gz" } ] }