木偶用户模块没有用hash密码更新/ etc / shadow

我正在使用puppet来pipe理我的ec2应用程序实例,这也涉及用户pipe理。 但最近我注意到一个错误,我无法login用户名的任何我通过木偶添加。 检查一个损坏的实例(我在这种情况下使用密钥)后,我发现/ etc / shadow密码字段(第二列)是空的.ie没有散列密码在其中。 我找不到用户创build更新散列密码的原因..因为我有用户模块中提供散列密码..相信我我使用一个非常简单的木偶“用户”模块,但由于某种原因,它不是更新用户的密码。

注意:模块在我的本地机器(Centos 6.3)上工作正常,

这是我的'user.pp'模块和日志:

1)附加user.pp.

2)木偶运行日志:

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)创build文件/ etc / shadow条目:

 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)Os版本和archit:

 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 

任何想法为什么这个模块不能更新密码从我的模块上的EC2实例?


我很抱歉,我不知道这不是一个论坛。 这里是我的问题的更新:

我同意..我忘了说,ruby-shadow已经作为“用户”模块的先决条件安装了。 仍然/ etc / shadow密码字段是空的。 我不知道什么是阻止木偶..任何想法?

这里是说,安装和启动ruby-shadow的命令日志:

 [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 

以下是在“user”模块之前安装的“显示package ruby​​-shadow”的木偶日志:

 [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* 

谢谢

Ruby(以及Puppet)需要安装一个名为ruby-shadow的库,以允许ruby修改影子密码文件。

在RHEL / CentOS上,这是ruby-shadow rpm。 在其他平台上,它可能被称为ruby-shadowlib。

puppet docs在provider-> useradd部分的用户types中引用它。

您应该能够通过执行以下操作来validation您正在加载正确的内容:

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

如果加载正确,它应该返回true。