如何让 Puppet 在创建用户时仅设置密码?

如何让 Puppet 在创建用户时仅设置密码?

我希望 Puppet 不管理密码(即,在密码更改时重置密码),而是在 Puppet 创建用户时设置初始密码。

我原本想notifyExec资源进行设置密码的操作,但当 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就没有必要了,但可能不会有什么坏处。

相关内容