Tengo un servicio web ejecutándose localmente que, en el entorno de desarrollo, tiene una dirección IP dinámica cada vez que se ejecuta. Es molesto que tenga que buscar su IP cada vez y volver a navegar hastahttp://$IP/foo
Me gustaría poder navegar http://my_service/foo
y tener un script, por ejemplo, /home/me/find_ip.sh
que imprimirá la IP nueva de mi servicio y que el nombre my_service
se resuelva en la salida find_ip.sh
cada vez que se solicite.
¿Puedo hacer esto sin configurar un servidor DNS completo localmente?
¿Existe un truco rápido y sucio?
Respuesta1
La solución más sencilla es añadir my_service
al /etc/hosts
archivo:
127.0.0.1 localhost my_service
o
127.0.1.1 my_service
Otra solución podría seragregar una interfaz de red virtual como.
EDITAR #1:
Un truco rápido y sucio para que my_service
funcione localmente sin un servidor DNS es modificar /etc/hosts
.
- Crear
/home/me/find_ip.sh
#!/bin/bash
FILE_OLD_IP=/tmp/ip.txt
OLD_IP='0.0.0.0'
NEW_IP=`ip route get 1 | awk '{print $NF;exit}'`
if [ -f "$FILE_OLD_IP" ]; then
OLD_IP=`cat $FILE_OLD_IP`
fi
if [ $NEW_IP != $OLD_IP ]; then
sed -i "s/.*my_service/$NEW_IP\tmy_service/" /etc/hosts
echo $NEW_IP > $FILE_OLD_IP
logger "NEW_IP: $NEW_IP"
else
logger "CURRENT_IP: $NEW_IP"
fi
exit 0
- Programar trabajo cron
sudo crontabe -e
:
*/1 * * * * /home/me/find_ip.sh