【问题标题】:Using Ansible to run sudo /bin/su - username使用 Ansible 运行 sudo /bin/su - username
【发布时间】:2016-11-28 14:54:18
【问题描述】:

我可以手动执行以下操作 -

来自我的 ansible 控制器服务器 ssh (使用我的用户名) 须藤/bin/su - .. 现在以 orafmw 运行命令 ...

当尝试使用 ansible 执行相同的步骤时 -

我的剧本有以下条目

 - role: fmw-software
   become: true
   become_user: 'orafmw'
   become_method: sudo
   become_flags: '/bin/su'  

失败如下 -

ansible-playbook weblogic-fmw-domain.yml

播放 [使用 WebLogic 12c R2 域配置 Oracle Linux 7.1] ******************

任务 [设置] ******************************************* ************************ 好的:[网络逻辑]

任务 [fmw-software : 创建安装程序目录] ******************************* 致命的:[weblogic]:失败! => {"failed": true, "msg": "等待提权提示超时(12s):"} 要重试,请使用:--limit @/tmp/ansible-weblogic-fmw-infra-12c-R2-master/weblogic-fmw-domain.retry

播放回顾 ************************************************ ************************ weblogic : ok=1 changed=0 unreachable=0 failed=1

谁能指出我在这里可能做错了什么? 文档建议 - http://docs.ansible.com/ansible/become.html

" 每个主机只能启用一种方法 方法不能被链接。您不能使用 sudo /bin/su - 要成为用户,您需要具有在 sudo 中以该用户身份运行命令的权限,或者能够直接 su 到它(pbrun、pfexec 或其他支持的方法相同)。 "

以上部分是否适用于我的用例?

【问题讨论】:

    标签: ansible-2.x


    【解决方案1】:

    become_flags 似乎对于实现以“orafmw”帐户运行命令的目标是多余的。作为一个快速测试,如果你这样做:

     - role: fmw-software
       become: true
       become_user: 'orafmw'
       become_method: sudo
       command: touch /tmp/whomadethis
    

    新文件“/tmp/whomadethis”是否在远程计算机上创建并归orafmw 帐户所有?如果是这样,请将command: 模块发出的调用替换为您需要运行的命令。

    更好的是,不要使用 command: 模块,而是使用内置的 Ansible 模块,并根据需要设置 become_* 选项。

    【讨论】:

    • 我的组织中的安全不允许我运行 sudo orafmw,我需要运行 sudo /bin/su - orafmw,我不会收到密码挑战。使用您提供的选项,我收到错误“sudo:需要密码\r\n”
    • 有趣,所以你能用become_method: su代替sudo吗?
    • 远程服务器中是否出现任何错误,可能有助于从那方面有所了解?
    • 您可以使用-c paramiko 选项运行剧本吗?有一个 Github 问题提到了这个 (github.com/ansible/ansible/issues/14426) 作为一种解决方法以及这个 stackoverflow.com/questions/35616021/…
    • 感谢您的建议 - 我已经尝试过 become_method: su 和 -c paramiko,但没有成功。我觉得我提到的文档中关于“ sudo /bin/su - ”的部分可能是我没有取得多大成功的原因。我已经要求我的 linux 管理员更改 sudo 规则以允许 ansible 运行所有命令。
    猜你喜欢
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多