我的远程主机服务器下有两个用户: firas,michel
在我的剧本中,我正在连接“firas”,我正在尝试用“michel”执行某项任务用户
(因此,只是断言它,我试图显示每次运行任务的用户“)。
我的主机文件如下所示:
[myHost]
server1
[myHost:vars]
ansible_user=firas
我的任务如下:
- name: switch to user michel and run whoami
shell: whoami
remote_user: michel
register: username_michel
when:
- ansible_host in groups['myHost']
- debug:
msg: "user supposed to be michel is ; {{username_michel.stdout}}"
when:
- ansible_host in groups['myHost']
- name: switch to user firas and run whoami
shell: whoami
remote_user: firas
register: username_firas
when:
- ansible_host in groups['myHost']
- debug:
msg: "user supposed to be adi is ; {{username_firas.stdout}}"
when:
- ansible_host in groups['myHost']
- > 但奇怪的是,像这样:我总是将用户“firas”作为活跃用户
似乎切换用户没有运行
任何想法?
答案 0 :(得分:0)
您在广告资源ansible_user=firas
中定义的连接变量优先于任务中的remote_user: michel
声明。删除它。
Possible Misunderstanding中的每个解释:
如文档http://docs.ansible.com/ansible/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable所述,连接变量优先于指令,这是因为主机连接信息被认为比播放连接信息更“具体”。您仍然可以通过设置连接变量(就像任何变量一样)从播放中覆盖它。