From f985755b32cc3f3558604264823de32de557b288 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sat, 24 Nov 2018 20:31:54 +0100 Subject: o Adding Linode update code. --- .../templates/linode-dns-update.j2 | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 ansible/roles/linode-dns-update/templates/linode-dns-update.j2 (limited to 'ansible/roles/linode-dns-update/templates') diff --git a/ansible/roles/linode-dns-update/templates/linode-dns-update.j2 b/ansible/roles/linode-dns-update/templates/linode-dns-update.j2 new file mode 100644 index 0000000..97ab7c9 --- /dev/null +++ b/ansible/roles/linode-dns-update/templates/linode-dns-update.j2 @@ -0,0 +1,45 @@ +#!/bin/bash + +set -e + +# Hostname: {{ ansible_hostname }} +URL="https://api.linode.com/" +USERNAME="{{ linode_dns__api_username }}" +KEY="{{ linode_dns__api_key }}" +DOMAIN_ID="{{ linode_dns__domain_id }}" + +PATH=/sbin:/usr/sbin:/bin:/usr/bin: + +req() { + PARAMS=() + for p in "$@" + do + PARAMS+=(-F "$p") + done + + curl \ + -4 \ + --user "$USERNAME:$KEY" -s \ + "${PARAMS[@]}" \ + "$URL" >/dev/null # | jq +} + +domain_resource_update() { + req api_action=domain.resource.update DomainId="$1" ResourceId="$2" Type="$3" Target="$4" +} + +{% if linode_dns__ipv4_resource is defined %} +domain_resource_update "$DOMAIN_ID" "{{ linode_dns__ipv4_resource }}" "A" "[remote_addr]" +{% endif %} + +{% if linode_dns__ipv6_resource is defined %} +q='' +#q='map(select(.ifname=="wlx00e01d0808b2"))' +q='map(.addr_info) | flatten | map(select(.scope=="global" and .deprecated != true and .mngtmpaddr != true) | .local) | first' +ip=$(ip -6 -json addr | jq -r -c "$q") + +if [[ ! -z $ip ]] +then + domain_resource_update "$DOMAIN_ID" "{{ linode_dns__ipv6_resource }}" "AAAA" "$ip" +fi +{% endif %} -- cgit v1.2.3