Actualizar DNS de cPanel desde Bash

Hoy Dyn ha dejado de prestar de manera gratuita su servicio de DNS dinámico. Avisaron con un mes de antelación y yo que ya llevaba tiempo dándole vueltas a cómo poder utilizar un dominio y un hosting propio para eso, me puse a investigar y tuve suerte.

En los foros de cPanel encontré un mensaje con un script en Bash para actualizar desde consola nuestros registros DNS —que por motivos de licencias no puedo reproducir aquí—. Utiliza la api de cPanel para gestionar los dominios y es ideal por ejemplo para crearnos un subdominio y llamar al script periódicamente desde el cron de una máquina con Linux. Incluso una Raspberry Pi con una distribución a medida, al no necesitar de librerías extrañas. Está bien pensado, comprobando en cada ejecución si la IP actual es la misma que la anterior para ahorrar actualizaciones innecesarias y hasta puede mandar un correo electrónico en caso de errores.

La configuración para un ejemplo podría ser:

CONTACT_EMAIL="[email protected]"
DOMAIN="delospalotes.com"
SUBDOMAIN="micasa"
CPANEL_SERVER="cpanel.delospalotes.com"
CPANEL_USER="usuario de cpanel"
CPANEL_PASS="contraseña de cpanel"

Y fuera dependencias de servicios de terceros.