El módulo de usuario de Puppet no actualiza /etc/shadow con contraseña hash

El módulo de usuario de Puppet no actualiza /etc/shadow con contraseña hash

Estoy administrando las instancias de mi aplicación ec2 usando Puppet y eso también implica la administración de usuarios. Pero recientemente noté un error que indica que no puedo iniciar sesión con ninguno de los nombres de usuario que agregué a través de Puppet. Después de verificar una de las instancias corruptas (usé claves en este caso), encontré que el campo de contraseña /etc/shadow (segunda columna) está en blanco, es decir, no contiene contraseña hash. No pude descubrir la razón por la cual las contraseñas hash no se actualizan con la creación del usuario... porque he proporcionado una contraseña hash en el módulo de usuario... créanme, estoy usando un módulo de 'usuario' títere muy simple, pero por alguna razón no es así. Actualización de contraseñas para los usuarios.

Nota: El módulo funciona bien en mi máquina local (Centos 6.3)

Aquí está mi módulo 'user.pp' y mis registros:

1) Adjuntar usuario.pp.

2) Registros de ejecución de títeres:

mnotice: /Usertgrochowicz/ensure: created
mnotice: /Userjpollard/ensure: created
mnotice: /Userbottle/ensure: created
mnotice: /Userjburgar/ensure: created
mnotice: /Userrahul/ensure: created
mnotice: /Userjfenocchi/ensure: created
mnotice: /Userdwhite/ensure: created
mnotice: /Userbporter/ensure: created
mnotice: /Userasavarin/ensure: created
mnotice: /Userehalfin/ensure: created
mnotice: Finished catalog run in 1.69 seconds
mnotice: Finished catalog run in 0.21 seconds

3) Entradas del archivo /etc/shadow creadas:

tgrochowicz:!!:15956:0:99999:7:::
jpollard:!!:15956:0:99999:7:::
bottle:!!:15956:0:99999:7:::
jburgar:!!:15956:0:99999:7:::
rahul:!!:15956:0:99999:7:::
jfenocchi:!!:15956:0:99999:7:::
dwhite:!!:15956:0:99999:7:::
bporter:!!:15956:0:99999:7:::
asavarin:!!:15956:0:99999:7:::
ehalfin:!!:15956:0:99999:7:::

4) Versión y arquitectura del sistema operativo:

ec2-user@ip-10-100-38-78 ~$ uname -r
3.4.43-43.43.amzn1.x86_64
ec2-user@ip-10-100-38-78 ~$ uname -a
Linux ip-10-100-38-78 3.4.43-43.43.amzn1.x86_64 #1 SMP Mon May 6 18:04:41 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

¿Alguna idea de por qué este módulo no puede actualizar la contraseña de mi módulo en la instancia ec2?


Mis disculpas, no sabía que esto no es un foro. Aquí está la actualización de mi pregunta:

Estoy de acuerdo... y olvidé decir que Ruby-Shadow ya está instalado como requisito previo para el módulo 'usuario'. Aún así, los campos de contraseña de /etc/shadow están en blanco. No tengo idea de qué es lo que bloquea el títere... ¿Alguna idea?

Aquí están los registros de comando que dicen que Ruby-Shadow está instalado e iniciado:

[root@ip-10-100-39-44 ~]# ruby -e "require 'puppet' ; puts Puppet.features.libshadow?"
true
[root@ip-10-100-39-44 ~]# rpm -qa | grep ruby-shadow
ruby-shadow-1.4.1-15.2.amzn1.x86_64

Y aquí están los registros de marionetas que muestran el paquete 'ruby-shadow' instalado antes del módulo "usuario":

[root@ip-10-100-39-44 ~]# less /var/log/messages 
*(/Stage[main]/Packages/Yumrepo[epel]/enabled) enabled changed '0' to '1'
Sep 20 03:08:50 ip-10-100-39-44 yum[2631]: Installed: ruby-shadow-1.4.1-15.2.amzn1.x86_64
Sep 20 03:08:51 ip-10-100-39-44 puppet-apply[2471]: (/Stage[main]/Packages/Package[ruby-shadow]/ensure) created*

*(/Stage[main]/Env::Sshd/Augeas[PasswordAuthentication]/returns) executed successfully
Sep 20 03:10:32 ip-10-100-39-44 puppet-apply[2471]: (/Stage[main]/Env::Sshd/Service[sshd]) Triggered 'refresh' from 1 events
Sep 20 03:10:38 ip-10-100-39-44 puppet-apply[2471]: (/Stage[main]//Exec[wait_for_5_sec]/returns) executed successfully
Sep 20 03:10:38 ip-10-100-39-44 puppet-apply[2471]: (/User[bporter]/ensure) created
Sep 20 03:10:38 ip-10-100-39-44 puppet-apply[2471]: (/User[asavarin]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[ehalfin]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[jpollard]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[bottle]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[jburgar]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[rahul]/ensure) created
Sep 20 03:10:39 ip-10-100-39-44 puppet-apply[2471]: (/User[tgrochowicz]/ensure) created
Sep 20 03:10:40 ip-10-100-39-44 puppet-apply[2471]: (/User[jfenocchi]/ensure) created
Sep 20 03:10:40 ip-10-100-39-44 puppet-apply[2471]: (/User[dwhite]/ensure) created*

Gracias

Respuesta1

Ruby (y por lo tanto Puppet) requiere que se instale una biblioteca llamada ruby-shadow para permitir que Ruby modifique el archivo de contraseña de sombra.

En RHEL/CentOS, este es el rpm ruby-shadow. En otras plataformas, puede llamarse ruby-shadowlib.

Los documentales sobre marionetas se refieren a ello en eltipo de usuarioen la sección proveedor->useradd.

Deberías poder verificar que estás cargando lo correcto haciendo algo como:

ruby -e "require 'puppet' ; puts PUppet.features.libshadow?"

Debería volver a ser verdadero si se carga correctamente.

información relacionada