ansible sudo su - 不支持

2021-11-09 21:52:56 +08:00
 leiuu

请教 ansible 大佬们。

第一次接触 ansible 。

需求如下:

假设我的用户只能是无密码切换到 root ,怎么用 ansible ad-hoc 方式远程执行需要 root 的命令。

我 foo 用户权限:

foo ALL=(ALL) NOPASSWD: /bin/su

计划执行(批量更新 hosts 文件):

ansible --private-key xxx -u foo all -m copy -a "src=/etc/hosts dest=/etc/hosts" -become --become-user root --become-method 'sudo'

报错:

1.2.3.4 | FAILED! => {
    "msg": "Missing sudo password"
}

谷歌的方法基本试过了不太奏效。据说 playbook 可以,但是目前想了解 ad-hoc 方式是否能直接支持。

1309 次点击
所在节点    Ansible
4 条回复
leishi1313
2021-11-09 23:46:10 +08:00
-K ?
sunyi382499496
2021-11-10 00:53:35 +08:00
你可以尝试一下在 ansible.cfg 里面加入
[privilege_escalation]
become_exe = 'sudo su -'
然后把 --become-method ‘sudo’ 换成 --become-method ‘su’
leiuu
2021-11-10 10:27:46 +08:00
@leishi1313 使用 sudo su - 切换 root 没有密码,如果 root 有密码 -K 可能可以。
leiuu
2021-11-10 10:28:35 +08:00
@sunyi382499496 🤝 🤝 精确解决了我的问题。。官网似乎没找到这个解法哎...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/814262

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX