{"id":35015633,"url":"https://github.com/mdda/rackspace-dns-sync","last_synced_at":"2026-05-21T00:31:17.253Z","repository":{"id":33109330,"uuid":"36747186","full_name":"mdda/rackspace-dns-sync","owner":"mdda","description":"Define your DNS setup in Python, and sync only the changes with Rackspace (for speed)","archived":false,"fork":false,"pushed_at":"2017-07-08T16:02:42.000Z","size":9,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-03-11T07:58:12.625Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mdda.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-02T16:44:33.000Z","updated_at":"2018-02-08T03:03:29.000Z","dependencies_parsed_at":"2022-09-12T19:02:39.380Z","dependency_job_id":null,"html_url":"https://github.com/mdda/rackspace-dns-sync","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/mdda/rackspace-dns-sync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdda%2Frackspace-dns-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdda%2Frackspace-dns-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdda%2Frackspace-dns-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdda%2Frackspace-dns-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdda","download_url":"https://codeload.github.com/mdda/rackspace-dns-sync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdda%2Frackspace-dns-sync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28072870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-27T02:00:05.897Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-27T05:19:27.061Z","updated_at":"2025-12-27T05:19:28.569Z","avatar_url":"https://github.com/mdda.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rackspace-dns-sync\n\nDefine your DNS setup in Python, and efficiently sync *only the changes* with Rackspace.\n\n## Motivation\n\nRackspace is very generous in offering FREE cloud DNS services if you sign up for \na cloud account (and there's no requirement for paying for other services either).\nIt probably works out for them financially, since their DNS service is pretty \nimpressive on its own, and (for example) I was motivated to praise them here, and \nelsewhere...\n\nBut managing the DNS through the web interface seems like an anti-pattern, particularly\nif one needs to manage a decent number of domains, with similar (but not identical) \nproperties and have a few different servers, etc.  This is a common problem for anyone\nthat has collected a few domain names, put up a few landing pages, seen some \nservices grow a little, moved hosting providers, etc.\n\nThis project includes a simple way of defining the mapping of names to \nthe required DNS entries programmatically (which means that it can be tracked \nvia ```git```, for instance).  \n\nAnd, using those definitions, allows for intelligent syncing with Rackspace - \nonly updating the entries that require changes - which makes the whole process \nmuch more responsive (since downloading current state and then uploading \ndifferences is much quicker than simply re-sending 'already known' facts).\n\nThe system has been in use for over 12 months, and works really nicely...\n\n\n\n## Installation\n\n```\nsudo yum install python-virtualenv \n\ncd .  # pwd = \u003cREPO\u003e/\nvirtualenv env\n. env/bin/activate\n\npip install pyrax\n\n# Necessary if you get a pyrax.exceptions.IdentityClassNotDefined exception\npip install --upgrade git+git://github.com/rackspace/pyrax.git\n```\n\n### Creating the Credentials File\n\nAfter reading through http://www.collazo.ws/2011/07/08/using-rackspace-dnsaas-with-curl-part-1 \nyou should make sure that you can get your Authorization Token (returned in the ```X-Auth-Token: ``` line) \nfrom your login (```X-Auth-User```) and API Key (```X-Auth-Key```) by filling them \ninto the following (and then putting the result into ```user_credentials.NOGIT``` \nin the same format as the included ```user_credentials.SAMPLE```) :\n\n```\ncurl -D - \\\n   -H \"X-Auth-User: myusername\" \\\n   -H \"X-Auth-Key: 01234567890abcdef01234567890abcdef\" \\\n   https://auth.api.rackspacecloud.com/v1.0 \\\n   | grep X-Auth-Token:\n```\n\n\n\n## Running\n\nAfter reading, understanding and modifying the ```ensure_dns.py``` file, run the sync with :\n\n```\ncd .  # pwd = \u003cREPO\u003e/\nvirtualenv env\n. env/bin/activate\n\npython ensure_dns.py\n```\n\nThis will print out debug messages as it goes along.\n\n\n### Checking it worked...\n\nTo confirm a Zone (look for name server claims):\n\n```\ndig @dns1.stabletransit.com example.com\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdda%2Frackspace-dns-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdda%2Frackspace-dns-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdda%2Frackspace-dns-sync/lists"}