updated README
This commit is contained in:
parent
e0866f3f86
commit
03be4141d3
44
README.md
44
README.md
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue