summaryrefslogtreecommitdiff
path: root/roles/ddns.notyet/templates/update-dns.j2
blob: 4d686668c460c802daa941b7970213919c8887fd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/sh
set -e

api_email=jodersky@gmail.com
api_key={{ddns_api_key}}
zone_name={{ddns_zone}}
record_name={{ddns_record}}

cf() {
    curl \
	-sS \
	-H "X-Auth-Email: $api_email"\
	-H "X-Auth-Key: $api_key"\
	-H "Content-Type: application/json"\
	$@
}

external_ip=$(dig +short myip.opendns.com @resolver1.opendns.com)
zone_id=$(cf -X GET "https://api.cloudflare.com/client/v4/zones?name=$zone_name" | jq -r '.result[0].id')
record_id=$(cf -X GET "https://api.cloudflare.com/client/v4/zones/$zone_id/dns_records?name=$record_name" | jq -r '.result[0].id')

cf -X PUT "https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records/${record_id}" \
   --data {\"type\":\"A\",\"name\":\""$record_name"\",\"content\":\""$external_ip"\"} \
    || (echo "Error updating IP address." >&2 && exit 1)