Just completed a migration away from AWS to Digital Ocean
Need to install the Digital Ocean dotctl
command line utility (this is using brew on a mac)
brew install dotctl
Transfer domain records away from AWS using the aws-cli
#!/bin/bash
domains=$(aws route53 list-hosted-zones | jq '.HostedZones[].Name' | sed -E 's/\.*\"//g')
for i in $domains; do
zonename=$i
hostedzoneid=$(aws route53 list-hosted-zones --output json | jq -r ".HostedZones[] | select(.Name == \"$zonename.\") | .Id" | cut -d'/' -f3)
aws route53 list-resource-record-sets --hosted-zone-id $hostedzoneid --output json | jq -jr '.ResourceRecordSets[] | "\(.Name) \t\(.TTL) \t\(.Type) \t\(.ResourceRecords[].Value)\n"' >zone-file-${i}
done
With the exported zone files use them to create a scripted DNS transfer. I have commented out the zone records and interspersed them with the doctl commands
doctl compute domain delete ausfoodexports.com.au
doctl compute domain create ausfoodexports.com.au
doctl compute domain records create --record-type A --record-name @ \
--record-data 167.71.215.46 ausfoodexports.com.au
doctl compute domain records create --record-type AAAA --record-name @ \
--record-data 2400:6180:0:d1::841:e001 ausfoodexports.com.au
# ausfoodexports.com.au. 300 A 13.55.162.0
# ausfoodexports.com.au. 300 AAAA 2406:da1c:f72:aa73:f84e:74fa:4f91:e542
# ausfoodexports.com.au. 3600 MX 0 ausfoodexports-com-au.mail.protection.outlook.com.
doctl compute domain records create --record-type MX --record-name @ \
--record-priority 0 --record-data "ausfoodexports-com-au.mail.protection.outlook.com." ausfoodexports.com.au
# ausfoodexports.com.au. 172800 NS ns-41.awsdns-05.com.
# ausfoodexports.com.au. 172800 NS ns-1686.awsdns-18.co.uk.
# ausfoodexports.com.au. 172800 NS ns-717.awsdns-25.net.
# ausfoodexports.com.au. 172800 NS ns-1515.awsdns-61.org.
# ausfoodexports.com.au. 900 SOA ns-1686.awsdns-18.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400
# ausfoodexports.com.au. 3600 TXT "MS=ms47011853"
doctl compute domain records create --record-type TXT --record-name @ \
--record-data "MS=ms47011853" ausfoodexports.com.au
# ausfoodexports.com.au. 3600 TXT "v=spf1 include:spf.protection.outlook.com -all"
doctl compute domain records create --record-type TXT --record-name @ \
--record-data "v=spf1 include:spf.protection.outlook.com -all" ausfoodexports.com.au
# autodiscover.ausfoodexports.com.au. 3600 CNAME autodiscover.outlook.com.
doctl compute domain records create --record-type CNAME --record-name autodiscover \
--record-data "autodiscover.outlook.com." ausfoodexports.com.au
# www.ausfoodexports.com.au. 300 CNAME ausfoodexports.com.au.
doctl compute domain records create --record-type CNAME --record-name www \
--record-data "ausfoodexports.com.au." ausfoodexports.com.au
0 Comments