Score:0

การอ้างอิงตัวแปรจาก defaults/main.yml ในบทบาทที่เข้าใจได้

ธง ag

ฉันมีการตั้งค่าบทบาทดังนี้

บทบาท/ทดสอบ/งาน/main.yml

- ชื่อ: สร้างไฟล์บุคคล
  แม่แบบ: src=test.j2 dest=/tmp/{{ item.name}}.cfg
  วนซ้ำ: "{{คน}}"

บทบาท/ทดสอบ/แม่แบบ/test.j2

Var แรก: {{ item.var1 }}
Var ที่สอง: {{ item.var2 }}

บทบาท/ทดสอบ/vars/main.yml

---
ผู้คน:
        - ชื่อ: เดอะซิมป์สันส์
          var1: โฮเมอร์
          var2: ซิมป์สัน

        - ชื่อ: สตาร์วอร์ส
          var1: ฮัน
          var2: โซโล

บทบาท/ทดสอบ/ค่าเริ่มต้น/main.yml

ผู้คน:
   - var2: สกายวอล์คเกอร์

หนังสือเล่นของฉัน

 - โฮสต์: localhost
   บทบาท:
    - ทดสอบ

เมื่อฉันเรียกใช้ playbook ทุกอย่างทำงานได้ตามที่คาดไว้ ฉันได้รับไฟล์ใหม่สองไฟล์ใน /tmp พร้อมข้อความที่ถูกต้อง อย่างไรก็ตาม หากฉันลบบรรทัด var2 นี้ออกจากไฟล์ vars/main.yml...

          var2: โซโล

ฉันคาดว่าค่า var2 จาก defaults/main.yml ของฉันจะแสดงในเอาต์พุต แต่ทั้งหมดที่ฉันได้รับคือข้อผิดพลาดนี้

ล้มเหลว: [localhost] (item={u'var1': u'han', u'name': u'StarWars'}) => {
    "เปลี่ยนแปลง": เท็จ
    "สิ่งของ": {
        "ชื่อ": "สตาร์วอร์ส",
        "var1": "ฮัน"
    },
    "msg": "AnsibleUndefinedVariable: 'dict object' ไม่มีแอตทริบิวต์ 'var2'"
}

ฉันได้ลองจัดรูปแบบ defaults/main.yml ประมาณ 10 วิธี แต่ได้รับข้อผิดพลาดเดียวกันทุกครั้ง

ถ้าฉันตั้งค่าการทดสอบที่ไม่วนซ้ำและ defaults/main.yml และ vars/main.yml เป็นคู่ "คีย์: ค่า" แบบแบน ฉันสามารถให้มันดึงค่าจาก defaults/main/yml ได้

บางอย่างเกี่ยวกับการวนลูปที่ฉันไม่เข้าใจ ผมทำอะไรผิดหรือเปล่า?

U880D avatar
ca flag
คำถามนี้มีคำตอบที่ https://stackoverflow.com/a/71162073/6771046

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา