Puncte:0

Sintaxa Hostvar nu poate primi variabile suplimentare ca nume de gazdă

drapel ph
azk

Încerc să folosesc un vars suplimentar pentru a seta numele de gazdă în variabila „hostvars” pentru a obține uuid-ul de la altă gazdă. Dar se pare că nu prinde valoarea variabilei.
Aceasta este linia de rulare:

$ ansible-playbook -i ../Inventory/my_inventory --vault-id vaultfile getuuid.yml -e vmname=testhost

Acesta este cartea de joc

---
- gazde: localhost
  gather_facts: adevărat

  vars:
    vcenter_hostname: „vcenter.bio.local”
    vcenter_username: „bio.local\ansible”
    vcenter_parola: !seif |
          $ANSIBLE_VAULT;1.1;AES256
          33376437643462306363663235353732613838623561616532383236633563663938656236643861
          3562366533306633386632356265623664396562636665360a323039396464336561383865386661
          37383766643536313639313337363263653537613238396136393581373932633166343834383162
          3735643035403631620a613666363336656634646436336336393238393866303133633265383461
          6434
    target_host: „{{ vmname }}” 
    vm_uuid: „{{ hostvars[target_host]['ansible_product_uuid'] }}”

  sarcini:
    - nume: gazdă de imprimare
      depanare:
        msg: „{{ vm_uuid }}”

Acesta este rezultatul erorii

PLAY [localhost] ************************************************ **************************************************** ************************

SARCINA [Adunarea faptelor] ********************************************* **************************************************** ********************
ok: [localhost]

SARCINA [Print host] ********************************************* **************************************************** ************************
fatal: [localhost]: FAILED! => {"msg": "Sarcina include o opțiune cu o variabilă nedefinită. Eroarea a fost: {{ hostvars[target_host]['ansible_product_uuid'] }}: 'ansible.vars.hostvars.HostVarsVars object' nu are atribut ' ansible_product_uuid'\n\nEroarea pare să fie în „/user/getuuid.yml”: linia 23, coloana 7, 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 sarcini:\n - nume: gazdă de imprimare\n ^ aici\n"}

JOACĂ RECAPITULARE ************************************************ **************************************************** ****************************
localhost: ok=1 schimbat=0 inaccesibil=0 eșuat=1 omis=0 salvat=0 ignorat=0
drapel in
Ansible a adunat efectiv faptele pentru `target_host`? Nu puteți utiliza un fapt pentru gazda țintă decât dacă fie adunați acest fapt, fie dacă aveți activată memorarea în cache și memoria cache este încă validă. Ce se întâmplă dacă faceți doar un `debug` pe var `hostvars[target_host]`?
azk avatar
drapel ph
azk
target_host primește variabila suplimentară „vmname” care primește numele de gazdă cu opțiunea -e când rulez playbook-ul
azk avatar
drapel ph
azk
Îmi pare rău. Încercam să obțin valoare care nu a fost adunată. Multumesc pentru ajutor!!
drapel br
Dacă singura gazdă este ``localhost``, atunci nu există alte ``hostvars`` cu excepția ``hostvars.localhost`` disponibile pentru joc. Testează-l. Tipăriți un fapt existent. Editați întrebarea și faceți-o [Exemplu minim, reproductibil](https://stackoverflow.com/help/minimal-reproducible-example). Eliminați variabilele redundante și codul, de ex. 1) Eliminați ``variables vcenter_*`` 2) Eliminați opțiunile ``-i`` și ``--vault-id``. Opțiunile nu influențează problema. Oricum nu furnizați fișierele.
Puncte:0
drapel ph
azk

Ansible_product_uuid nu a fost adunat. Variabila hostvars funcționează bine.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.