Closed. This question is opinion-based。它当前不接受答案。
想要改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
3年前关闭。
Improve this question
为什么ansible的成为成为用户,除非成为= yes否则什么都不做?
我想知道是否有人可以向我解释为什么为什么默默地使用
有两个不同选择的意义何在,尤其是要避免诉求并且不说任何事情。
您可以全局定义用户,但这并不意味着您想在每个任务上都使用它。
您甚至可以在 list ,组或主机变量中设置
想要改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
3年前关闭。
Improve this question
为什么ansible的成为成为用户,除非成为= yes否则什么都不做?
我想知道是否有人可以向我解释为什么为什么默默地使用
become_user: xxx
选项无法执行任何操作,除非您还添加了become: yes
有两个不同选择的意义何在,尤其是要避免诉求并且不说任何事情。
最佳答案
那是两件事。一个设置用户名,另一个设置以该用户身份运行任务,阻止或播放。如果您看一下这本剧本,也许是有道理的:
- hosts: all
become_user: foo
tasks:
- shell: whoami
register: a
- shell: whoami
become: yes
register: b
- block:
- shell: whoami
register: c
- shell: whoami
become: yes
register: d
- shell: whoami
become: yes
become_user: baz
register: e
become_user: bar
- debug: var=a.stdout
- debug: var=b.stdout
- debug: var=c.stdout
- debug: var=d.stdout
- debug: var=e.stdout
TASK [setup] *******************************************************************
ok: [some.host]
TASK [command] *****************************************************************
changed: [some.host]
TASK [command] *****************************************************************
changed: [some.host]
TASK [command] *****************************************************************
changed: [some.host]
TASK [command] *****************************************************************
changed: [some.host]
TASK [command] *****************************************************************
changed: [some.host]
TASK [debug] *******************************************************************
ok: [some.host] => {
"a.stdout": "realuser"
}
TASK [debug] *******************************************************************
ok: [some.host] => {
"b.stdout": "foo"
}
TASK [debug] *******************************************************************
ok: [some.host] => {
"c.stdout": "realuser"
}
TASK [debug] *******************************************************************
ok: [some.host] => {
"d.stdout": "bar"
}
TASK [debug] *******************************************************************
ok: [some.host] => {
"e.stdout": "baz"
}
您可以全局定义用户,但这并不意味着您想在每个任务上都使用它。
您甚至可以在 list ,组或主机变量中设置
become_user
(ansible_become_user
),从而为每个主机,共置主机等定义唯一的sudo用户。但是,您仍然不希望再以该用户身份运行每个任务。关于ansible - 为什么ansible的成为成为用户,除非成为= yes否则什么都不做?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35603049/
10-09 01:45