【发布时间】:2021-05-07 11:43:48
【问题描述】:
我正在尝试以 ansible 作为特定用户在系统上运行命令。
我以该特定用户身份运行很重要,因为该命令需要运行的配置文件仅对该用户可用。任何其他用户将无法读取配置文件,因此无法工作。
我正在尝试使用 ansible 的 become_user、become 和 become_method 来运行命令,但 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"
}
我是否误解了become_user 的工作原理?是否有其他方法可以让我的命令以特定用户身份运行?
如果这很重要,我正在使用 ansible 2.9.18。
谢谢
【问题讨论】:
-
```成为:真成为_用户:成为_标志:-i外壳:“whoami”```
-
添加 become_flags: 我似乎也没有改变任何东西。
-
我试过 become_method: sudo.这似乎也没有帮助。无论我尝试什么,我似乎总是以 root 身份运行。