我希望 Puppet 不管理密码(即,在密码更改时重置密码),而是在 Puppet 创建用户时设置初始密码。
我原本想notify
对Exec
资源进行设置密码的操作,但当 Puppet 管理的任何属性被修改时(例如,组成员身份、主目录等),就会触发此操作。我不想这样。
有任何想法吗?
答案1
Puppet 本身并不支持“在创建用户时设置密码,但在其他情况下则不设置”。
一种选择是设置外部身份验证源,例如 LDAP。
另一个可能是你notify
有一个Exec
想法,但要让它变得Exec
更聪明一些。
exec {
"/usr/sbin/usermod -p '${password}' ${user}":
onlyif => "/bin/egrep -q '^${user}:[*!]' /etc/shadow",
require => User[$user];
}
我没有测试过,但通过检查资源中是否未设置密码Exec
,您应该会得到想要的结果。我认为这样设置的话,notify
/refreshonly
就没有必要了,但可能不会有什么坏处。