Folosesc 2 cărți de joc legate, detaliile menționate mai jos.
playbook1: colectați date brute de la mai multe mașini
- gazde: target_1
gather_facts: false
sarcini:
- nume: Înregistrați o nouă valoare
shell: df -h|awk '{gsub("%","|");printează $5 $6}'
înregistrare: PLAY1VAR
- depanare: msg="{{PLAY1VAR.stdout}}"
- nume: Înregistrați o nouă valoare
shell: nume de gazdă
înregistrare: PLAY2VAR
- depanare: msg="{{PLAY2VAR.stdout}}"
- nume: Înregistrați gazda inactivă cu variabilă
add_host:
nume: „DUMMY_HOST”
PLAY1VAR_NEW: „{{ PLAY1VAR.stdout }}”
- nume: Înregistrați gazda inactivă cu variabilă
add_host:
nume: „DUMMY_HOST_1”
PLAY2VAR_NEW: „{{ PLAY2VAR.stdout }}”
- gazde: target_2
gather_facts: false
sarcini:
- nume: Înregistrați o nouă valoare
playbook2: analizați datele folosind script-ul Python
- gazde: localhost
gather_facts: false
sarcini:
- nume: Echo ieșirea - PLAY1 vaule variabilă
comandă: python3 /opt/diskspace_watcher/watcher.py '{{hostvars['DUMMY_HOST']['PLAY1VAR_NEW']}}' '{{hostvars['DUMMY_HOST_1']['PLAY2VAR_NEW']}}'
înregistrare: PLAY2_RESULTS
- depanare: msg="{{PLAY2_RESULTS.stdout}}"
Trec câteva variabile din primul manual la altul, când rulez acest lucru pentru o singură gazdă, funcționează conform așteptărilor, dar când încerc să rulez pentru mai multe gazde, nu poate să transmită argumentele pentru toată gazda menționată în inventar fișier și preia doar o variabilă pentru o anumită gazdă.
Caut o modalitate de a executa asta. Orice ajutor/idee este apreciat!!