Criar sub domínio com ip dinâmico ou fixo
O objetivo é apontar um subdomínio para um IP diferente do IP principal do nome de domínio. Se o nosso destino é um ip fixo que não muda, basta na gestão do dns criar um subdomínio com um record A. Temos um domínio registado "example.com" e precisamos que o subdomínio "rpi.example.com" aponte sempre para o mesmo local com o mesmo ip. Se usarmos o CPANEL.
Domains->Zone Editor->+A Record
Inserimos o subdomínio que pretendemos e o ip
rpi.example.com
111.111.111.111
Ficamos com o endereço a apontar para o ip que definimos
Ip Dinâmico
Se o ip é dinâmico (o ip de internet na nossa casa, por exemplo) já não é tão fácil. Existem alguns serviços que nos permitem ter acesso a ip dinâmicos mas, cada um deles tem um domínio especifico e dificilmente vai interligar com o nosso subdomínio. Assim, se tivermos o cpanel podemos criar um ip dinâmico.
Dynamic DNS->CREATE
Criamos o nosso subdomínio "rpi.example.com", podemos até acrescentar uma descrição "Home Router". O cpanel vai criar uma url que permitirá renovar o ip se mudar
https://example.com/cpanelwebcall/lmgzxzxzxzxnqnvstbsmuupeumevzmcxjtnpxalh
Mas, como vamos usar esta chamada para alterar o nosso ip?
Se tivermos um webserver em casa(o nosso raspberry por exemplo) podemos criar uma rotina que execute determinado comando definindo o tempo.
Cron, Crontab
Cron é um programa que executa comandos ou scripts que são agendados numa tabela designada por crontab.
Crontab é um programa que edita os comandos a serem executados pelo cron a uma determinada hora/dia/mês.
Para visualizar os comandos na lista
crontab -l
Aparece-nos os comandos na lista para serem executados
*/5 * * * * curl http://example.com/check/ */5 * * * * /usr/bin/php /var/www/html/renovar.php >/dev/null 2>&1
Para editar, pode-se editar diretamente, vai abrir a tabela com o editor por defeito vi. Podemos definir o nosso editor por defeito executando antes export EDITOR=nano
crontab -e
No nosso webserver temos de executar a linha gravada no cpanel.
https://example.com/cpanelwebcall/lmgzxzxzxzxnqnvstbsmuup Editamos o crontab com crontab -ee inserimos
*/5 * * * * curl https://example.com/cpanelwebcall/lmgzxzxzxzxnqnvstbsmuup
Neste exemplo, a cada 5 minutos o sistema verifica se existiu alteração de ip e muda se for alterado.
Nota importante: Ao criarmos o record A com o subdomínio, o cpanel coloca o TTL (Time To Live) com o valor por defeito, esse valor se for muito alto, especialmente na altura da criação, vai fazer com que possamos esperar até 1 dia para existir uma propagação efetiva. Quando esta a alterar os dados do domínio, no capnel, dns editor->manage e altera-se o TTL temporariamente para um valor baixo, normalmente uso 300 (5 minutos).