Încerc să înregistrez o variabilă într-un rol și apoi să o folosesc în altul.
Iată diferitele fișiere pe care le folosesc:
playbook.yml
---
- gazde: hostsgroup1
[...]
roluri:
- rolul 1
- gazde: 127.0.0.1
conexiune: locală
roluri:
- rolul2
rol1/tasks/principal.yml
- nume: Exemplul 1
[...]
- nume: Exemplul 2
coajă:
qm agent {{ VM_id }} network-get-interfaces |grep ip-address |grep '172.20' |grep -oE '((1?[0-9][0-9]?|2[0-4][] 0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5] ])'
înregistrare: var_role1
rol2/tasks/main.yml
- nume: Adăugarea serverului la bastion
ansible.builtin.debug:
msg: Test {{ var_role1.stdout }}
Pentru informare comanda qm agent îmi oferă o adresă IP și vreau să o folosesc în al doilea rol. Dar, evident, deocamdată afișează o eroare când execut playbook-ul:
fatal: [127.0.0.1]: FAILED! => {"msg": "Sarcina include o opțiune cu o variabilă nedefinită. Eroare a fost: \"hostvars['proxmoxhosts']\" este nedefinit\n\nEroarea pare să fie în '/root/ansible/roles /bastion_add/tasks/main.yml': linia 3, coloana 3, dar poate\nsă fie în altă parte a fișierului, în funcție de problema exactă de sintaxă.\n\nRândul ofensator pare să fie:\n\n# fișier de activități pentru bastion_add \n- nume: Adăugarea serverului la bastion\n ^ aici\n"}
Pentru a rezuma, vreau să folosesc var_role1, înregistrat în rol1, în rol2.