
请教 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=http://www.v2ex.com/etc/hosts dest=/etc/hosts" -become --become-user root --become-method 'sudo' 报错:
1.2.3.4 | FAILED! => { "msg": "Missing sudo password" } 谷歌的方法基本试过了不太奏效。据说 playbook 可以,但是目前想了解 ad-hoc 方式是否能直接支持。
1 leishi1313 2021-11-09 23:46:10 +08:00 via Android -K ? |
2 sunyi382499496 2021-11-10 00:53:35 +08:00 你可以尝试一下在 ansible.cfg 里面加入 [privilege_escalation] become_exe = 'sudo su -' 然后把 --become-method ‘sudo’ 换成 --become-method ‘su’ |
3 leiuu OP @leishi1313 使用 sudo su - 切换 root 没有密码,如果 root 有密码 -K 可能可以。 |
4 leiuu OP @sunyi382499496 精确解决了我的问题。。官网似乎没找到这个解法哎... |