如何成为ansible中的特定用户
我试图在ansible作为特定用户的系统上运行命令 我必须以该特定用户的身份运行,因为命令需要使用的配置文件仅对该用户可用。任何其他用户都无法读取配置文件,因此无法工作 我试图使用ansible的如何成为ansible中的特定用户,ansible,su,Ansible,Su,我试图在ansible作为特定用户的系统上运行命令 我必须以该特定用户的身份运行,因为命令需要使用的配置文件仅对该用户可用。任何其他用户都无法读取配置文件,因此无法工作 我试图使用ansible的been_user、been和been_方法运行该命令,但ansible似乎忽略了它。下面是一个例子: - shell: whoami register: c - shell: whoami become: yes register: d - shell: whoami become:
been_user
、been
和been_方法运行该命令,但ansible似乎忽略了它。下面是一个例子:
- shell: whoami
register: c
- shell: whoami
become: yes
register: d
- shell: whoami
become: yes
become_user: myuser
become_method: su
register: e
- debug: var=c.stdout
- debug: var=d.stdout
- debug: var=e.stdout
当我运行ansible脚本时,我得到以下结果:
TASK [myscript : debug] *************************************************************************************************************************************************
ok: [10.33.56.93] => {
"c.stdout": "root"
}
TASK [myscript : debug] *************************************************************************************************************************************************
ok: [10.33.56.93] => {
"d.stdout": "root"
}
TASK [myscript : debug] *************************************************************************************************************************************************
ok: [10.33.56.93] => {
"e.stdout": "root"
}
我是否误解了成为用户的工作原理?是否有其他方法让我的命令以特定用户的身份运行
如果有必要的话,我将使用ansible 2.9.18
谢谢尝试添加
become_method: su
使用特定用户可能会有所帮助。我不确定,它可能有助于你成为一个用户,而用户是你这里需要的主要部分
您将看到root
出现在第一个任务中,因为您正在以root
的身份运行playbook,这很好
另外两个任务是root
,因为您正在为每个任务授予权限提升,这将覆盖您正在设置的成为用户。您只需将删除为:yes
,切换用户即可
---
-主机:本地主机
变成:是的
任务:
-贝壳:哇
注册编号:c
-贝壳:哇
成为用户:myuser
注册编号:d
-调试:var=c.stdout
-调试:var=d.stdout
``been:true been\u user:been\u flags:-i shell:“whoami”``添加been\u flags:我似乎也没有改变任何东西。我尝试过been\u方法:sudo。这似乎也无济于事。无论我尝试什么,我总是以root身份运行。检查第三个示例-我已经使用了它。奇怪的是,这似乎没有什么不同:(啊,是的,我现在明白了。)(如果这有关系的话,这是CentOS 8.3上的版本(我认为不应该)将您的确切示例复制到我的脚本并运行它仍然会导致用户成为root用户。因此,我担心这也不起作用。事实证明,这是正确的。问题是,我在我的groupvars文件中有以下未知内容:ansible\u been\u用户:root ansible\u been\u方法:sudo