Skip to main content
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF! Donate Now

A DNS record manager using DigitalOcean as backend, useful for assigning DNS records in a DHCP hook.

Project description

A DNS record manager using DigitalOcean as backend, with its own authentication. Best suited when you just need something that changes the DNS, but you don’t want it to have access to other APIs, for example, APIs that can cost you money.

I find this particularly useful for assigning DNS records in a DHCP lease hook. An example hook is included as dnsmasq-hook for dnsmasq users.

Installation

pip install do-dns-manager

Configuration

Create htpasswd.txt somewhere containing lines of username and password pairs separated by :, for example:

spam:password
ham:hunter2

We will call this file $HTPASSWD.

Run the DNS manager as follows:

DIGITAL_OCEAN_API_KEY='(api key)' do-dns-manager --domain=example.com --keyfile=$HTPASSWD --port=8888 --address=127.0.0.1

Change (api key), example.com, $HTPASSWD, 8888 and 127.0.0.1 to fit your situation.

We will use curl examples:

# Add A record for spam.example.com
curl -u 'spam:password' http://127.0.0.1:8888 -d @- <<EOF
{"op": "add", "address": "127.0.0.1", "domain": "spam"}
EOF

# Add AAAA record for spam.example.com
curl -u 'spam:password' http://127.0.0.1:8888 -d @- <<EOF
{"op": "add", "address": "::1", "domain": "spam"}
EOF

# Remove A record for spam.example.com
curl -u 'spam:password' http://127.0.0.1:8888 -d @- <<EOF
{"op": "del", "address": "127.0.0.1", "domain": "spam"}
EOF

# Remove AAAA record for spam.example.com
# Using "address": "::1" instead of "type": "AAAA" also works
curl -u 'spam:password' http://127.0.0.1:8888 -d @- <<EOF
{"op": "del", "type": "AAAA", "domain": "spam"}
EOF

Project details


Release history Release notifications

This version
History Node

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
do_dns_manager-0.1-py3-none-any.whl (7.6 kB) Copy SHA256 hash SHA256 Wheel py3
do-dns-manager-0.1.tar.gz (17.7 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page