为角色中的特定任务设置ansible_user



我在为角色中的特定任务设置ansible_user(或remote_user)时遇到了障碍。

可以在host或group变量中设置ansible_user,并且角色和任务使用该用户ssh到服务器。

我想要实现的是为一个角色中的特定任务设置一个远程用户。

我有一个main。

我想设置ansible_user: user2

但是我尝试了不同的变体,每次我用这个角色执行游戏时,ansible_user,在组或主机变量中定义,将被使用:

- name: "include user_create.yml"
include_tasks: 
file: "user_create.yml"
apply:
become: yes
remote_user: user2
vars:
- become: yes
- remote_user: user2
- ansible_user: user2
tags: 
- user_create

我几乎尝试了以上所有的设置,但都没有成功。

有人有主意吗?

更新:这应该根据Zeitounator工作,但也不适合我:

- name: "include user_create.yml"
include_tasks: 
file: "user_create.yml"
apply: 
ansible_user: user2      
tags: 
- user_create

更新2:

所以我可以像这样设置一个不同的用户来执行任务:

- name: "include user_create.yml"
include_tasks: 
file: "user_create.yml"
#apply: 
#  become: yes
vars:
ansible_user: user2
tags: 
- user_create

但仅当all.yml中没有定义ansibl_user时。

所以从我的理解块或任务变量应该覆盖组变量(所有。在我看来,Yml是一个组变量。

remote_user是一个游戏关卡节。在其他地方使用的变量是ansible_user。我猜你真正想要的是:

- name: "include user_create.yml"
include_tasks: 
file: "user_create.yml"
apply:
become: yes
ansible_user: user2
tags:
- user_create
tags: 
- always

最新更新