我正在尝试以与运行剧本的用户不同的用户身份运行特定的 Ansible 任务。我的.yml文件看起来像这样:
---
- hosts: staging_servers
tasks:
- name: check user
remote_user: someusername
shell: whoami
Run Code Online (Sandbox Code Playgroud)
运行此任务向我显示该whoami命令返回的用户与我在任务中定义的用户不同(准确地说,返回在hosts名为 的文件中定义的用户ubuntu)。
我还尝试像这样定义任务:
---
- hosts: staging_servers
tasks:
- name: check user
sudo: yes
sudo_user: someusername
shell: whoami
Run Code Online (Sandbox Code Playgroud)
但是后来我收到“ Missing sudo password”错误,尽管sudoers文件中有一行说明someusername ALL=(ALL) NOPASSWD:ALL并sudo在远程机器上发出命令,因为someusername没有要求我输入密码。
那么,我如何以不是hosts文件中定义的用户或root他自己的不同用户身份运行特定任务?