diff --git a/dns_scripts/dns_add_vultr b/dns_scripts/dns_add_vultr new file mode 100755 index 0000000..47da19a --- /dev/null +++ b/dns_scripts/dns_add_vultr @@ -0,0 +1,30 @@ +#!/bin/bash +# Vultr Add DNS Record + +api_url="https://api.vultr.com/v2" +api_key=${VULTR_API_KEY:-''} + + +domain="$1" +challenge="$2" + +root=$(echo "$domain" | awk -F\. '{print $(NF-1) FS $NF}') +subdomain="_acme-challenge.${domain%.$root}" + +if [[ -z "$VULTR_API_KEY" ]]; then + echo "VULTR_API_KEY variable not set" + exit 1 +fi + +function create { +curl "${api_url}/domains/$1/records" -s -o /dev/null -X POST -H "Authorization: Bearer ${VULTR_API_KEY}" -H "Content-Type: application/json" \ + --data "{ + \"name\" : \"$2\", + \"type\" : \"TXT\", + \"data\" : \"${challenge}\", + \"ttl\" : 300, + \"priority\" : 0 + }" +} + +create $root $subdomain diff --git a/dns_scripts/dns_del_vultr b/dns_scripts/dns_del_vultr new file mode 100755 index 0000000..82c2270 --- /dev/null +++ b/dns_scripts/dns_del_vultr @@ -0,0 +1,26 @@ +#!/bin/bash +# Vultr Delete DNS Record +# This script requires jq to be installed on the machine running it + +api_url="https://api.vultr.com/v2" +api_key=${VULTR_API_KEY:-''} + + +domain="$1" + +root=$(echo "$domain" | awk -F\. '{print $(NF-1) FS $NF}') +subdomain="_acme-challenge.${domain%.$root}" + +if [[ -z "$VULTR_API_KEY" ]]; then + echo "VULTR_API_KEY variable not set" + exit 1 +fi + +function delete { + recordID=$(curl "${api_url}/domains/$1/records" --silent -X GET -H "Authorization: Bearer ${VULTR_API_KEY}" | jq -r ".records[] | select(.name==\"$2\").id") + + curl "${api_url}/domains/$1/records/$recordID" -X DELETE -H "Authorization: Bearer ${VULTR_API_KEY}" +} + + +delete $root $subdomain