我是ansible的新手,我一直在玩特权升级,但如果我要将任务定义为
,我对它的运作方式有点困惑。- name: Do something
become: yes
command: some command
我将以root用户身份登录时执行此任务,但如果我不希望这样做,并希望它在远程计算机上的行为类似 sudo some command ,同时仍以当前用户,就像这样写出来一样简单
- name: Do something
become: yes
become_method: sudo
command: some command
或者我必须使用上面的行 become_user:{{ansible_user}}
答案 0 :(得分:1)
Ansible始终以remote_user身份登录目标ssh服务器
如果您使用become: yes
Ansible调用sudo
(或其他权限提升工具)以become_user
运行命令。
如果您使用-vvv
详细程度执行Ansible,您将看到它完全符合您的要求:以当前用户身份登录,然后sudo command
。
唯一的问题是Ansible使用python-wrappers执行命令,如果你需要在没有任何包装器的情况下执行sudo some command
,你可以使用:
- name: Do something
become: yes
raw: some command