Назад | Перейти на главную страницу

Как сделать так, чтобы марионетка устанавливала пароль только при создании пользователя?

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

Я думал сделать notify чтобы Exec ресурс, который устанавливает пароль, но срабатывает при изменении любого свойства, которым управляет Puppet (например, членство в группе, домашний каталог и т. д.). Я не хочу этого.

Любые идеи?

Сам 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 вещи не нужны, но, вероятно, не повредит.