我正在尝试将 include_role 与项目一起使用
---
- hosts: cluster
tasks:
- block:
- name: Execute test role
include_role:
name: testrole
with_items:
- 'one'
...
我的角色是
---
- name: Just debugging
debug:
...
问题在于,每个主机似乎每个项目运行该角色 X 次,其中 X 是主机数。
PLAY [cluster] *****************************************************************
TASK [setup] *******************************************************************
ok: [thisNode]
ok: [dww]
TASK [Execute test role] *******************************************************
TASK [testrole : Just debugging] ***********************************************
ok: [thisNode] => {
"msg": "Hello world!"
}
ok: [dww] => {
"msg": "Hello world!"
}
TASK [testrole : Just debugging] ***********************************************
ok: [thisNode] => {
"msg": "Hello world!"
}
ok: [dww] => {
"msg": "Hello world!"
}
PLAY RECAP *********************************************************************
dww : ok=3 changed=0 unreachable=0 failed=0
thisNode : ok=3 changed=0 unreachable=0 failed=0
为什么会发生这种情况,我该如何解决?
Ansible 主机:
[cluster]
thisNode ansible_host=localhost ansible_connection=local
dww
我不能委派任务,因为在实际角色中,必须在每个主机中执行任务。
使用allow_duplicates: no
仍然输出相同。
---
- hosts: cluster
tasks:
- name: Execute test role
include_role:
name: testrole
allow_duplicates: False
with_items:
- 'one'
...