Keď dôvod tohto správania je dobre, uviedol @flowerysong odpoveď, tam je riešenie, ktoré môžete použiť na dosiahnutie vašich požiadaviek.
Trik je prostredníctvom toho, že si môžete definovať dve hrá vo vnútri playbook, a potom použite premenná je nastavená na hosť(s) prvého hrať.
Takže, čo budeme robiť, je:
- Spustiť a hrať na
localhost
a nastaviť skutočnosti prichádzajú zo základnej skupiny, ktoré sa snažíme cieľ v druhom hrať
- Voliteľne: ja tiež definovaný
target_hosts
premenná v prvom hrať, ak chcete mať istotu, že ak druhý hrať cieľ je upravený, hostiteľskej skupiny premenná je vždy ten, ktorý druhom, hrať sa bude cieľ.
- Použitie že premenná v druhom hrať, od
localhost
"s hostvars
Extra poznámka: nie je účtovníctvo, pre chuť, ale ja dávam prednosť inline, ak na ternary
filter, stále, sú prísne ekvivalent.
Takže, vzhľadom na playbook:
- hosts: localhost
gather_facts: no
tasks:
- set_fact:
target_hosts: nodes
- set_fact:
host_set: "{{ hostvars[groups[target_hosts].0].host_set }}"
- hosts: "{{ hostvars.localhost.target_hosts }}"
gather_facts: no
serial: "{{ '100%' if hostvars.localhost.host_set else '1' }}"
tasks:
- debug:
- Keď bežať s
host_set: true
v nodes
skupina:
PLAY [localhost] *******************************************************************************************************************
TASK [set_fact] ********************************************************************************************************************
ok: [localhost]
TASK [set_fact] ********************************************************************************************************************
ok: [localhost]
PLAY [nodes] ***********************************************************************************************************************
TASK [debug] ***********************************************************************************************************************
ok: [node1] =>
msg: Hello world!
ok: [node2] =>
msg: Hello world!
ok: [node3] =>
msg: Hello world!
PLAY RECAP *************************************************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node1 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node2 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node3 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
- Keď bežať s
host_set: false
v nodes
skupina:
PLAY [localhost] *******************************************************************************************************************
TASK [set_fact] ********************************************************************************************************************
ok: [localhost]
TASK [set_fact] ********************************************************************************************************************
ok: [localhost]
PLAY [nodes] ***********************************************************************************************************************
TASK [debug] ***********************************************************************************************************************
ok: [node1] =>
msg: Hello world!
PLAY [nodes] ***********************************************************************************************************************
TASK [debug] ***********************************************************************************************************************
ok: [node2] =>
msg: Hello world!
PLAY [nodes] ***********************************************************************************************************************
TASK [debug] ***********************************************************************************************************************
ok: [node3] =>
msg: Hello world!
PLAY RECAP *************************************************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node1 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node2 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node3 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0