Puppetがパスワードを管理する(つまり、パスワードが変更されたときにリセットする)のではなく、Puppetがユーザーを作成するときに初期パスワードを設定するようにしたい。
パスワードを設定notify
するExec
リソースに対してを実行することを考えていましたが、これは、Puppetが管理するプロパティ(グループメンバーシップ、ホームディレクトリなど)が変更されたときにトリガーされます。それは欲しくない。
何か案は?
Puppetがパスワードを管理する(つまり、パスワードが変更されたときにリセットする)のではなく、Puppetがユーザーを作成するときに初期パスワードを設定するようにしたい。
パスワードを設定notify
するExec
リソースに対してを実行することを考えていましたが、これは、Puppetが管理するプロパティ(グループメンバーシップ、ホームディレクトリなど)が変更されたときにトリガーされます。それは欲しくない。
何か案は?
回答:
Puppet自体は、「ユーザーの作成時にパスワードを設定しますが、それ以外はサポートしません」をネイティブでサポートしていません。
1つのオプションは、LDAPなどの外部認証ソースを設定することです。
もう1つはあなたnotify
のExec
アイデアですが、Exec
少し賢くします。
exec {
"/usr/sbin/usermod -p '${password}' ${user}":
onlyif => "/bin/egrep -q '^${user}:[*!]' /etc/shadow",
require => User[$user];
}
私はそれをテストしていませんが、Exec
リソースにパスワードが設定されていないかどうかを確認することで、探していた結果が得られるはずです。私はそのように設定すると思います、notify
/ refreshonly
は必要ありませんが、おそらく害はありません。
egrep '^${username}:!!:.*:' /etc/shadow
grep -Eq '^${user}:[*!]!?:' /etc/shadow"
最も移植性が高く、ロックされたパスワードでユーザーをリセットしません。
!
パスワードなしの設定に使用するのを見たことがありegrep -q '^${user}:[*!]:' /etc/shadow
ます。