1 votos

Hora local errónea distribuida por Puppet 4.8

He encouter algunos problemas con mi módulo de zona Horaria en la Marioneta.

Así que para que sea corto y claro, estoy en un internado y mi jefe me dio un encargo : Fijar la creación automática de una máquina virtual.

La creación de su uso .archivo yaml con los detalles acerca de la VM en el interior (CPU,RAM,IP,Copia de seguridad, etc ...) entonces una página html es hacer con un archivo makefile con los detalles de la VM y la xenconf (el archivo cfg).

Cuando una máquina virtual se crea que hay un script que instalar algunos paquetes (cuyo títere).

Ahora tengo algunos problemas :

La máquina virtual no tiene el buen tiempo, todos están en UTC y queremos con el localtime de París (Europa). Primero probé a distribuir directamente el archivo, pero que no estaba trabajando después de algunas investigaciones, he intentado utilizar el enlace, pero el enlace no es correcto, tengo un enlace simbólico a UTC en lugar de Europe/Paris. No es mi init.el pp de archivo para mi zona horaria de clase :

#
# config de ntpd
#
# $Id: init.pp 5149 2015-07-01 16:11:29Z k***.a**** $
#
# Configuration de la timezone

class timezone {

    # Fichier de configuration
    file { 'timezone':
        path => '/etc/timezone',
        ensure => file,
        source => 'puppet:///modules/timezone/timezone',
    }

   ## Fichier de configuration
   # file { 'localtime':
   #   path => '/etc/localtime',
   #   ensure => file,
   #   source => 'puppet:///modules/timezone/Europe/Paris',
   # }

    file { '/etc/localtime':
    require => Package["tzdata"],
    ensure => link,
    force  => yes,
    target => '/usr/share/zoneinfo/Europe/Paris',
}

    exec { 'update_date':
        command => 'dpkg-reconfigure -f noninteractive tzdata',
        path    => '/usr/local/bin/:/bin/',
        #refreshonly => true,
    }

}

Hay algunos comandos que he intentado, para comprobar mi enlace simbólico :

ls -F  : localtime@

root@testcreationvm:/etc# file localtime 
localtime: symbolic link to /usr/share/zoneinfo/Etc/UTC

He un problema más con este módulo, es ¿cómo puedo ejecutar el comando anterior (dpkg-reconfigure -f no tzdata), una vez en la creación y después de que cada vez que el enlace o archivo es modificado.

Thx por adelantado :)

PS : Todas las VM son Debians (a partir de 7 a 9).

2voto

Craig Watson Puntos 3702

El Forge y sus colaboradores (de los cuales yo soy uno) ya tienen un montón de trabajo duro en la creación de los módulos para la comunidad, para que personas como usted y de su "tutor" no tiene que hacerlo. Mediante el uso de módulos es una de las principales fortalezas de la utilización de Puppet (o cualquier herramienta de automatización). Yo aprendí hace mucho tiempo a aprovechar el poder de la Forja en lugar de escribir mi propio Puppet codebase.

Forjar módulos (por lo general) probado y comprobado que funciona. Tu código va a tomar un tiempo razonable para escribir, no se (me imagino) ser probada, así como una Forja módulo y por lo tanto no (me imagino) ser tan digno de confianza como una Forja módulo. Esto no quiere decir que el código que usted (u otras personas internamente) escribir no va a ser un buen código y funciona como se pretende, sino "de pie sobre los hombros de gigantes", debería permitir pasar su tiempo de manera más eficiente de hacer el trabajo que debería estar haciendo como un ingeniero de sistemas o desarrollador, en lugar de servil de las tareas de configuración.

Su administrador debe el valor de su tiempo, y si a usted le gustaría aprender de Puppet, usted siempre puede ver algunos Forjar módulos en GitHub para ver cómo funcionan, o tomar una puñalada en la fijación de algunos bugs y Tire de la presentación de Solicitudes para el personal de mantenimiento.

En ese sentido, la solución correcta es utilizar una Forja módulo como saz/zona horaria.

Después de instalar el módulo, es tan simple como la asignación de la clase del nodo y la adición de esta configuración en Hiera y dejar que el módulo se encarga del resto. Usted no tiene ninguna necesidad en absoluto a mirar en el código del módulo.

Por ejemplo:

---
classes:
  - timezone

timezone::timezone: 'Europe/Paris'

Por favor, siéntase libre de punto de su gerente para esta respuesta si tiene cualquier duda.

0voto

Ghrew Puntos 6

Descubrí por qué no funcionaba, la zona horaria del módulo no se había declarado correctamente en common.yaml, en la carpeta hieradata, en el entorno de producción.

Aquí está mi archivo common.yaml (parte de):

 base:
    - adminkey
    - apt
    - assimilate
    - cacti
    - exim4
    - facteraddon
    - fsck
    - initramfs
    - locales
    - monit
    - motd
    - nagios
    - needrestart
    - ntpd
    - puppet
    - rc
    - resolv
    - root
    - snmpd
    - sshd
    - sudo
    - timezone
    - users

dom0:
    - hostsfile
    - kernels
    - xen_tools
etc ...
 

Y ahí está mi zona horaria de clase:

 class timezone {

    # Fichier de configuration
    file { 'timezone':
        path => '/etc/timezone',
        ensure => file,
        source => 'puppet:///modules/timezone/timezone',
    }

    file { '/etc/localtime':
        ensure => link,
        target => '/usr/share/zoneinfo/Europe/Paris',
        force  => yes,
    }
}
 

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: