V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Ansible
Ansible Documentation
leiuu
V2EX  ›  Ansible

ansible sudo su - 不支持

  •  
  •   leiuu · 2021-11-09 21:52:56 +08:00 · 1305 次点击
    这是一个创建于 1138 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请教 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 方式是否能直接支持。

    4 条回复    2021-11-10 10:28:35 +08:00
    leishi1313
        1
    leishi1313  
       2021-11-09 23:46:10 +08:00 via Android
    -K ?
    sunyi382499496
        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’
    leiuu
        3
    leiuu  
    OP
       2021-11-10 10:27:46 +08:00
    @leishi1313 使用 sudo su - 切换 root 没有密码,如果 root 有密码 -K 可能可以。
    leiuu
        4
    leiuu  
    OP
       2021-11-10 10:28:35 +08:00
    @sunyi382499496 🤝 🤝 精确解决了我的问题。。官网似乎没找到这个解法哎...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2556 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:57 · PVG 11:57 · LAX 19:57 · JFK 22:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.