Estoy usando Puppet para administrar un grupo de servidores Debian. Necesito cambiar la zona horaria de cada máquina en el clúster. La forma debian adecuada de hacer esto es usar dpkg-reconfigure tzdata
. Pero solo puedo cambiarlo si uso el cuadro de diálogo. ¿Hay alguna forma de automatizar esto desde el shell para que pueda escribir un Exec para facilitar esto?
Si no, creo que la siguiente mejor forma sería tener una distribución de títeres /etc/timezone
y /etc/localtime
con los datos correctos en todo el clúster.
Cualquier entrada apreciada!
Respuestas:
Debe especificar la interfaz como "no interactiva" y guardará su configuración actual.
dpkg-reconfigure tomará la configuración actual del sistema como gospel, así que simplemente cambie su zona horaria como lo haría normalmente y ejecútela con el indicador no interactivo
por ejemplo, para que yo cambie a "Europa / Dublín" donde estoy:
Obviamente, esto le permite usar puppet / cfengine como quiera distribuir / etc / timezone también.
fuente
echo 'Europe/Dublin' | sudo tee /etc/timezone > /dev/null
sudo bash -c 'echo "Europe/Dublin" > /etc/timezone'
Dado que la respuesta aceptada ya no funciona (Debian Jessie, abril de 2017), un enfoque modificado desde el enlace de comentarios de @ gertvdijk parece hacer el trabajo ahora:
fuente
Debería poder usar debconf-set-selections para preestablecer la configuración. Instale debconf-utils y ejecútelo
debconf-get-selections | grep tzdata
en un sistema configurado correctamente para averiguar qué configurarlo también.fuente
También puede usar la receta del (ahora extinto) Puppet wiki ( archivo ) que reemplaza
/etc/localtime
con el archivo zoneinfo apropiado de/usr/share/zoneinfo
: -No estoy seguro de si dpkg-reconfigure hace algo extra, pero he usado la receta anterior y funciona perfectamente.
fuente
Es muy simple y solo necesita escribir un comando y responder las preguntas simples.
entonces corre:
fuente