【发布时间】:2019-07-10 08:17:01
【问题描述】:
我正在以非特权用户 ansible 的身份登录另一台计算机,并且我希望 ansible 为用户 bob 启用 systemd 用户服务。
没有ansible,解决方案是ssh bob@machine,后跟systemctl --user enable service
但是,用ansible,有两个问题:
- 如果已作为另一个非特权用户 (ansible) 登录,则新版本的 ansible 将拒绝成为非特权用户 bob。
- 即使这样有效,dbus 也不会启动,systemctl 也无法与 systemd 对话(如果我理解正确的话)。
一个非常难看的解决方法是执行 shell 命令,让远程主机 ssh 以 bob 身份进入自身,然后在那里运行 systemctl raw 命令。
有没有更好的方法来完成这项工作?
【问题讨论】:
-
bob 是否有 ssh 密钥来 ssh 到机器?如果是这样,不确定但也许 remote_user 设置可用于直接以“bob”而不是“ansible”身份登录机器
-
听起来很有趣,这是否适用于剧本中由用户
ansible执行的单个角色/任务?