updated README

This commit is contained in:
cave beat 2017-08-15 18:01:15 +02:00
parent e0866f3f86
commit 03be4141d3
1 changed files with 23 additions and 21 deletions

View File

@ -2,19 +2,20 @@ gandi_live_dns
---- ----
This is a simple dynamic DNS updater for the This is a simple dynamic DNS updater for the
[Gandi](https://www.gandi.net) registrar. It uses their REST API to update [Gandi](https://www.gandi.net) registrar. It uses their [LiveDNS REST API](http://doc.livedns.gandi.net/) to update the zone file for a subdomain of a domain to point at the external IPv4 address of the computer it has been run from.
the zone file for a subdomain of a domain to point at the external IPv4
address of the computer it has been run from.
It has been developed on Debian 8 Jessie and tested on Debian 9 Sretch GNU/Linux using Python 2.7. It has been developed on Debian 8 Jessie and tested on Debian 9 Sretch GNU/Linux using Python 2.7.
With the new v5 Website, Gandi has also launched a With the new v5 Website, Gandi has also launched a new REST API which makes it easier to communicate via bash/curl or python/requests.
new REST API which makes it easier to communicate via bash/curl or python/requests.
### Goal ### Goal
You want your homeserver to be always available at `dynamic.mydomain.tld`. You want your homeserver to be always available at `dynamic.mydomain.tld`.
### Debian Package Requirements
`apt-get update && apt-get upgrade && apt-get install unzip python-requests python-args python-simplejson`
#### API Key #### API Key
First, you must apply for an API key with Gandi. Visit First, you must apply for an API key with Gandi. Visit
https://account.gandi.net/en/ and apply for (at least) the production API https://account.gandi.net/en/ and apply for (at least) the production API
@ -23,10 +24,6 @@ key by following their directions.
#### A DNS Record #### A DNS Record
Create the DNS A Records in the GANDI Webinterface which you want to update if your IP changes. Create the DNS A Records in the GANDI Webinterface which you want to update if your IP changes.
### Debian Package Requirements
`apt-get update && apt-get upgrade && apt-get install unzip python-requests python-args python-simplejson`
#### Git Clone or Download the Script #### Git Clone or Download the Script
Download the Script from [GitHub](https://github.com/cavebeat/gandi_live_dns/archive/master.zip) and unzip it. Download the Script from [GitHub](https://github.com/cavebeat/gandi_live_dns/archive/master.zip) and unzip it.
@ -47,32 +44,37 @@ api_secret = '---my_secret_API_KEY----'
##### api_endpoint ##### api_endpoint
Gandiv5 LiveDNS API Location Gandiv5 LiveDNS API Location
http://doc.livedns.gandi.net/#api-endpoint http://doc.livedns.gandi.net/#api-endpoint
'''
```
api_endpoint = 'https://dns.beta.gandi.net/api/v5' api_endpoint = 'https://dns.beta.gandi.net/api/v5'
```
##### domain ##### domain
Your domain with the subdomains to be updated Your domain for the subdomains to be updated
domain = 'mydomain.tld'
##### subdomains ##### subdomains
All subdomains which should be updated. They get created if they do not yet exist. All subdomains which should be updated. They get created if they do not yet exist.
subdomains = ["subdomain1", "subdomain2", "subdomain3"]
The first domain is used to find out the actual IP in the Zone Records. ```
subdomains = ["subdomain1", "subdomain2", "subdomain3"]
```
The first subdomain is used to find out the actual IP in the Zone Records.
#### Run the script #### Run the script
And run the script: And run the script:
`
```
root@dyndns:~/gandi_live_dns-master/src# ./gandi_live_dns.py root@dyndns:~/gandi_live_dns-master/src# ./gandi_live_dns.py
Checking dynamic IP: 127.0.0.1 Checking dynamic IP: 127.0.0.1
Checking IP from DNS Record subdomain1: 127.0.0.1 Checking IP from DNS Record subdomain1: 127.0.0.1
IP Address Match - no further action IP Address Match - no further action
` ```
If your IP has changed, it will be detected and the update will be triggered. If your IP has changed, it will be detected and the update will be triggered.
` ```
root@dyndns:~/gandi_live_dns-master/src# ./gandi_live_dns.py root@dyndns:~/gandi_live_dns-master/src# ./gandi_live_dns.py
Checking dynamic IP: 127.0.0.2 Checking dynamic IP: 127.0.0.2
Checking IP from DNS Record subdomain1: 127.0.0.1 Checking IP from DNS Record subdomain1: 127.0.0.1
@ -80,11 +82,11 @@ IP Address Mismatch - going to update the DNS Records for the subdomains with ne
Status Code: 201 , DNS Record Created , IP updated for subdomain1 Status Code: 201 , DNS Record Created , IP updated for subdomain1
Status Code: 201 , DNS Record Created , IP updated for subdomain2 Status Code: 201 , DNS Record Created , IP updated for subdomain2
Status Code: 201 , DNS Record Created , IP updated for subdomain3 Status Code: 201 , DNS Record Created , IP updated for subdomain3
` ```
#### Command Line Arguments #### Command Line Arguments
` ```
root@dyndns:~/gandi_live_dns-master/src# ./gandi_live_dns.py -h root@dyndns:~/gandi_live_dns-master/src# ./gandi_live_dns.py -h
usage: gandi_live_dns.py [-h] [-f] usage: gandi_live_dns.py [-h] [-f]
@ -92,7 +94,7 @@ optional arguments:
-h, --help show this help message and exit -h, --help show this help message and exit
-f, --force force an update/create -f, --force force an update/create
` ```
The force option runs the script, even when no IP change has been detected. The force option runs the script, even when no IP change has been detected.
It will update all subdomains and even create them if they are missing in the It will update all subdomains and even create them if they are missing in the