#!/bin/bash # Get public IP address (there are many ways to do it, I picked this way) PUBLIC_IP=$(curl -4 ifconfig.me) # Update *.{{ fqdn }} and {{ fqdn }} cat /etc/ddns/record_template.json \ | jq '.Changes[0].ResourceRecordSet.ResourceRecords[0].Value = "'$PUBLIC_IP'"' \ | jq '.Changes[1].ResourceRecordSet.ResourceRecords[0].Value = "'$PUBLIC_IP'"' \ > /etc/ddns/record.json # aws cli to update a record aws route53 change-resource-record-sets --hosted-zone-id {{ hosted_zone_id }} --change-batch file:///etc/ddns/record.json