Como se atualiza automaticamente o Route53 a partir de um servidor pi de framboesa em casa?

3

Um raspberry pi em casa rodando Rasbian Jessie 8.0 está rodando o Apache. Usar dig TXT +short o-o.myaddr.l.google.com @ns1.google.com produz um IPv4 que é usado para atualizar o valor nos conjuntos de registros da zona hospedada na rota 53 da AWS circulada em vermelho na imagem a seguir. Testar o nome do domínio é bem sucedido.

O que eu gostaria de fazer agora é atualizar o AWS Route53 sempre que o endereço IP dinâmico da minha casa mudar de dentro do raspberry pi sem qualquer ajuda minha.

Por favor, deixe-me saber se você precisar de mais informações.

    
por Manics lie ohm 08.12.2017 / 21:08

1 resposta

3

Se você quiser ficar com as ferramentas da AWS, siga estas etapas:

  1. Crie um usuário do AWS IAM, por exemplo dns-updater e atribuir a ela essa política gerenciada da AWS: AmazonRoute53FullAccess . Gere segredo e acesso chaves para o usuário.

  2. Instale o AWS-CLI (por exemplo, pip install awscli )

  3. Configure o AWS-CLI , insira as chaves secretas e de acesso acima: aws configure

De um cron job no RPi, execute um script que faça o seguinte:

  1. Obtenha o IP público externo, por ex. RPI_EXT_IP=$(curl http://ifconfig.co)

  2. Crie um arquivo JSON de atualização:

    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. Chame o AWS-CLI para atualizar o registro Route53 usando o arquivo JSON acima, substitua o ID da zona hospedada por um ID real da sua zona Route53:

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

Deixe-nos saber se você precisar de algum esclarecimento.

Não se esqueça de aceitar a resposta se isso ajudar:)

    
por 12.12.2017 / 22:51