
Я только начал изучать Puppet и столкнулся с проблемой, и мне было интересно, знает ли кто-нибудь, как ее исправить. Я пытаюсь удалить пользователя, но получаю сообщение об ошибке, в котором говорится, что он вошел в систему, поэтому его нельзя удалить.
Теперь в этом случае я знаю, на какой сервер они вошли, поэтому я могу просто выйти из системы пользователя и продолжить работу. Однако мой вопрос заключается в том, что вы делаете, когда вы не знаете, на какие серверы они вошли? Имея в виду, что это может быть много серверов.
Есть ли возможность принудительного удаления или способ выхода пользователей из системы в Puppet?
Код ниже:
user {'art':
ensure => absent,
}
Ошибки:
Ошибка: Не удалось удалить пользовательское искусство: Выполнение '/usr/sbin/userdel art' вернуло 8: userdel: пользователь art в данный момент вошел в систему
Ошибка: /Stage[main]/Main/Node[demo]/User[art]/ensure: смена с присутствующего на отсутствующий не удалась: Не удалось удалить пользовательское искусство: Выполнение '/usr/sbin/userdel art' вернуло 8: userdel: пользователь art в данный момент вошел в систему
решение1
Вы можете создать ресурс exec, который завершит все процессы, принадлежащие пользователю.
Выглядеть это будет примерно так:
exec {'kill-art':
command => 'pkill -u art',
onlyif => 'pgrep -u art',
}
user {'art':
ensure => absent,
require => Exec['kill-art'],
}