请教 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 方式是否能直接支持。
1
leishi1313 2021-11-09 23:46:10 +08:00 via Android
-K ?
|
2
sunyi382499496 2021-11-10 00:53:35 +08:00 1
你可以尝试一下在 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 🤝 🤝 精确解决了我的问题。。官网似乎没找到这个解法哎...
|