使用 Ansible 运行命令时,可以通过设置 become
和 become_user
参数以不使用 sudo
的方式作为不同的用户运行命令。以下是一个示例:
---
- name: Run command as a different user
hosts: your_target_host
become: true
become_user: your_username
tasks:
- name: Run command
shell: whoami
register: result
- name: Display output
debug:
var: result.stdout
在上面的示例中,hosts
参数指定要运行命令的目标主机。become
参数设置为 true
,表示使用特权提升来运行命令。become_user
参数指定要切换到的不同用户。在这个例子中,将命令作为 your_username
用户运行。
tasks
下面的任务列表中,shell
模块用于运行命令。在这个例子中,运行了 whoami
命令来显示当前用户的用户名。使用 register
参数将命令输出保存到 result
变量中。
为了验证命令是否以指定的用户身份运行,可以使用 debug
模块来显示 result.stdout
变量的值,它将包含 whoami
命令的输出。
以上示例可以在 Ansible Playbook 中使用。将示例代码保存为 .yaml
文件,然后使用 ansible-playbook
命令运行该 Playbook。
注意:为了能够以不同用户运行命令,您需要在目标主机上拥有相应的权限。