我刚刚开始学习 puppet,遇到了一个问题,我想知道是否有人知道如何解决。我正在尝试删除一个用户,但收到一条错误消息,指出他们已登录,因此无法删除。
现在在这种情况下,我知道他们登录的是哪个服务器,所以我可以简单地将用户注销并从那里继续。我的问题是,当您不知道他们登录了哪些服务器时,您会怎么做?请记住,它可能是许多服务器。
是否有强制删除选项或一种在 puppet 中注销用户的方法?
代码如下:
user {'art':
ensure => absent,
}
Run Code Online (Sandbox Code Playgroud)
错误:
错误:无法删除用户艺术:执行 '/usr/sbin/userdel art' 返回 8:userdel:用户艺术当前已登录
错误:/Stage[main]/Main/Node[demo]/User[art]/ensure:从存在更改为不存在失败:无法删除用户艺术:执行'/usr/sbin/userdel art'返回8:userdel : 用户艺术当前已登录
根据这篇文章,您可以断开用户使用的连接pkill -STOP -u USERNAME。您可以在 puppet 中
创建一个资源定义:
define kill_and_delete {
exec { "killing $title":
command => "pkill -STOP -u $title",
onlyif => "grep '^$title' /etc/passwd",
before => User[$title],
}
user { $title: ensure => absent}
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以像这样使用它:
kill_and_delete {'art': }
注意:我没有对此进行测试。
请参阅资源排序 - before 和 require并键入引用 - exec。
| 归档时间: |
|
| 查看次数: |
2240 次 |
| 最近记录: |