如何从家里的树莓派服务器自动更新 Route53?

如何从家里的树莓派服务器自动更新 Route53?

家里运行 Rasbian Jessie 8.0 的树莓派正在运行 Apache。使用dig TXT +short o-o.myaddr.l.google.com @ns1.google.com生成一个 IPv4,用于更新 AWS 路由 53 中托管区域的记录集中的值(下图中以红色圈出)。 53 号公路记录集 测试域名成功。

我现在想做的是,每当我家的动态 IP 地址从树莓派内部发生变化时,就更新 AWS Route53,而无需我的任何帮助。

如果您需要更多信息,请告诉我。

答案1

如果您想坚持使用 AWS 工具,请按照以下步骤操作:

  1. 创建一个 AWS IAM 用户,例如DNS 更新程序并为其分配此 AWS 托管策略:AmazonRoute53FullAccess。产生秘密使用权用户的密钥。

  2. 安装AWS-CLI(例如pip install awscli

  3. 配置AWS-CLI,输入上面的秘密和访问密钥:aws configure

从 RPi 上的 cron 作业运行一个执行以下操作的脚本:

  1. 获取外部公网IP,例如RPI_EXT_IP=$(curl http://ifconfig.co)

  2. 创建更新 JSON 文件:

    cat > /tmp/r53-update.json << __EOF__
      {
        "Changes": [
          {
            "Action": "UPSERT",
            "ResourceRecordSet": {
              "Name": "rpi.your-route53-domain.com",
              "Type": "A",
              "TTL": 600,
              "ResourceRecords": [
                {
                  "Value": "${RPI_EXT_IP}"
                }
              ]
            }
          }
        ]
      }
    __EOF__
    
  3. 称呼AWS-CLI要使用上述 JSON 文件更新 Route53 记录,请将托管区域 ID使用您的 Route53 区域的真实 ID:

    ~ $ aws route53 change-resource-record-sets \
            --hosted-zone-id ZXCVBNMEXAMPLE \
            --change-batch file:///tmp/r53-update.json
    

如果您需要任何说明,请告诉我们。

如果答案有帮助,别忘了接受:)

相关内容