我制作了一本剧本,其功能如下:
shell: source ~/.bashrc && some_command |awk 更多内容
变成:是
成为用户:a_user
成为方法: sudo
连接到目标主机的 Ansible_user 不应能够在目标主机上执行 sudo -i,也不应在 /etc/sudoers.conf 中具有“Ansible_user (ALL)=ALL NOPASSWD: ALL”条目。
我希望它能够以 a_user 身份执行一些命令(包括 bash 内置命令,如 source)。我在文档中发现 Ansible 会尝试执行如下操作:
- 以 Ansible_user 身份登录
- 执行 $Ansible_user sudo -u Commands_from_playbook
然而,当我尝试运行剧本时,我得到的是: module_stderr: Shared connection to host_ip_here close msg: MODULE FAILURE See stderr for the certain error
尽管作业以“verbosity 3”运行,但没有显示 stderr
当用户被授予 sudo -i 和/或 sudoers 中的 ALL 时,脚本将按预期运行...
/etc/sudoers 条目应该是什么?也许我应该使用类似 Ansible_user ALL = (a_user) NOPASSWD: and_something_here (/bin/bash 用于内置程序?)
有什么提示吗?