Модуль пользователя puppet не обновляет /etc/shadow с помощью хэш-пароля

Модуль пользователя puppet не обновляет /etc/shadow с помощью хэш-пароля

Я управляю экземплярами своего приложения ec2 с помощью puppet, и это также включает управление пользователями. Но недавно я заметил ошибку, из-за которой я не могу войти ни с одним из имен пользователей, которые я добавил через puppet. После проверки одного из поврежденных экземпляров (в этом случае я использовал ключи) я обнаружил, что поле пароля /etc/shadow (2-й столбец) пустое, т. е. в нем нет хэшированного пароля. Я не смог выяснить причину, по которой хэшированные пароли не обновляются при создании пользователя... потому что у меня есть хэшированный пароль в модуле пользователя... поверьте мне, я использую очень простой модуль puppet 'user', но по какой-то причине он не обновляет пароли для пользователей.

Примечание: модуль отлично работает на моей локальной машине (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) Созданы записи файла /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) Версия и архитектура ОС:

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 уже установлен как предварительный компонент для модуля 'user'. Поля пароля /etc/shadow все еще пустые. Понятия не имею, что блокирует puppet.. есть идеи?

Вот журналы команд, которые говорят о том, что 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

А вот логи puppet, которые показывают, что пакет «ruby-shadow» установлен до модуля «user»:

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

Спасибо

решение1

Ruby (и, следовательно, Puppet) требует установки библиотеки ruby-shadow, чтобы позволить Ruby изменять файл теневых паролей.

На RHEL/CentOS это rpm ruby-shadow. На других платформах он может называться ruby-shadowlib.

Документы по марионетке ссылаются на это втип пользователяв разделе provider->useradd.

Вы сможете убедиться, что загружаете нужный файл, выполнив следующие действия:

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

Если загрузка проходит правильно, она должна вернуть значение true.

Связанный контент