Puncte:1

Ansible include_vars: includerea variabilelor de dicționar dintr-un fișier

Încerc să încarc variabile de dicționar dintr-un fișier și nu pot accesa variabilele din interior. Mă puteți ajuta , vă rog? scuze pentru o întrebare atât de simplă

Iată un exemplu de cod de lucru:

---
  sarcini:
  - nume: Dict test
    vars:
      utilizatori:
        alice:
          nume: Alice Appleworth
          telefon: 123-456-7890
        bob:
          nume: Bob Bananarama
          telefon: 987-654-3210
    depanare:
      msg: "Utilizatorul {{ item.key }} este {{ item.value.name }} ({{ item.value.telephone }})"
    buclă: "{{ lookup('dict', utilizatori) }}"

Dar când adaug dict-ul într-un fișier și folosesc include_vars pentru a-l încărca, codul de mai sus nu funcționează.

Fișier: test1.yml

utilizatori:
  alice:
    nume: Alice Appleworth
    telefon: 123-456-7890
  bob:
    nume: Bob Bananarama
    telefon: 987-654-3210

Următorul cod nu funcționează

  sarcini:
  - nume: Dict test
    include_vars: test1.yml
    depanare:
      msg: "Utilizatorul {{ item.key }} este {{ item.value.name }} ({{ item.value.telephone }})"
    buclă: "{{ lookup('dict', utilizatori) }}"

Dar ansible dubuging -vvv arată

ok: [localhost] => {
    „ansible_facts”: {
        „utilizatori”: [
            {
                „alice”: nul,
                „nume”: „Alice Appleworth”,
                „telefon”: „123-456-7890”
            },
            {
                „bob”: nul,
                "nume": "Bob Bananarama",
                „telefon”: „987-654-3210”
            }
        ]
    },
drapel cn
În general, „nu funcționează” nu are sens în sine - ar trebui să citați mesajele de eroare pe care le primiți...
Puncte:2
drapel th

„Nu funcționează” este o descriere foarte vagă a problemei dvs., dar aceasta nu este o definiție validă a sarcinii:

  - nume: Dict test
    include_vars: test1.yml
    depanare:
      msg: "Utilizatorul {{ item.key }} este {{ item.value.name }} ({{ item.value.telephone }})"
    buclă: "{{ lookup('dict', utilizatori) }}"

include_vars și depanare sunt acțiuni individuale, deci trebuie să fie sarcini separate; așa cum o aveți, aceasta ar trebui să vă dea eroarea utilă EROARE! instrucțiuni de acțiune conflictuale: include_vars, debug

  - include_vars: test1.yml

  - nume: Dict test
    depanare:
      msg: "Utilizatorul {{ item.key }} este {{ item.value.name }} ({{ item.value.telephone }})"
    buclă: „{{ utilizatori | dict2items }}”

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.