背景介绍
因为涉及到mysql的MHA切换,目前考虑的方案是服务端配置连接直接使用域名操作数据库,这样后端MHA切换转移,无需修改连接配置。
应用此场景,需要在MHA切换过程中进行域名的绑定更改。
公司目前使用的是AWS机器自建,咨询后了解到私有域名的如下更新操作。
前期准备
-
运维开通AWS IAM账号授权操作aws route53
-
在服务器安装awscli 工具并进行基础账号配置,参考指令如下
shell
--- 下载并安装awscli
curl "https://d1vvhvl2y92vvt.cloudfront.net/awscli-exe-linux-x86_64.zip" -o
"awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version --验证安装成功
aws configure --进行控制台登录配置(运维提供认证信息)
aws route53 指令介绍
- aws route53 list-resource-record-sets --hosted-zone-id xxxxxx — 显示route53服务的资源组信息
- aws route53 change-resource-record-sets --hosted-zone-id xxxxxxx --change-batch file://xxxxxxx
操作具体DNS 绑定信息,具体操作行为在file的json文档中指定,注意 file:// 固定开头,后面写文档的绝对路径(如/tmp/route53_changes.json)
快速切换脚本
shell
#!/bin/bash
#Variable Declaration - Change These
# HOSTED_ZONE_ID事先确认固定不变,由运维提供
HOSTED_ZONE_ID="xxxxxxxxxxxx"
NAME=$1
IP=$2
TYPE="A"
TTL=5
rm -f /tmp/route53_changes.json
#prepare route 53 payload
cat > /tmp/route53_changes.json << EOF
{
"Comment":"Updated From DDNS Shell Script",
"Changes":[
{
"Action":"UPSERT",
"ResourceRecordSet":{
"ResourceRecords":[
{
"Value":"$IP"
}
],
"Name":"$NAME",
"Type":"$TYPE",
"TTL":$TTL
}
}
]
}
EOF
#update records
aws route53 change-resource-record-sets --hosted-zone-id $HOSTED_ZONE_ID --change-batch file:///tmp/route53_changes.json >> /dev/null
执行指令 sh changeDNS.sh 具体的dns名称 想要切换到的目标IP地址
即可完成域名和ip的切换绑定
参考链接
最后修改时间:2021-08-27 14:45:31
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




