我刚开始学习木偶并遇到了一个问题,我想知道是否有人知道如何修复.我试图删除用户我收到一条错误消息,说明他们已登录,因此无法删除.
现在在这种情况下,我知道他们登录了什么服务器,所以我可以简单地将用户登出并从那里继续.但是,当你不知道他们登录的是什么服务器时,你会怎么做?请记住,它可能是许多服务器.
代码如下:
user {'art': ensure => absent,}
错误:
Error: Could not delete user art: Execution of ‘/usr/sbin/userdel art’
returned 8: userdel: user art is currently logged inError: /Stage[main]/Main/Node[demo]/User[art]/ensure: change from
present to absent Failed: Could not delete user art: Execution of
‘/usr/sbin/userdel art’ returned 8: userdel: user art is currently
logged in
解决方法
根据
this post,您可以使用pkill -STOP -u USERNAME断开用户连接.
你可以在puppet中创建一个 resource definition这样的东西:
你可以在puppet中创建一个 resource definition这样的东西:
define kill_and_delete { exec { "killing $title": command => "pkill -STOP -u $title",onlyif => "grep '^$title' /etc/passwd",before => User[$title],} user { $title: ensure => absent} }
之后,你就像这样使用它:
kill_and_delete {‘art’:}
注意:我没有测试过这个.
见resource ordering – before and require和type reference – exec.