Score:0

แทนที่ตัวยึดรายการด้วย Ansible

ธง th

ฉันมี playbook ที่เรียบง่ายซึ่งมีลักษณะดังนี้:

- โฮสต์: myhost
  งาน:
  - include_vars:
      ไฟล์: ./resolved.yml

  - ชื่อ: แก้ไขตัวยึดตำแหน่ง
    แท็ก: ความละเอียด
    แม่แบบ:
      src: "./placeholders.yml"
      ปลายทาง: "/tmp/res.yml"

รับ YAML ต่อไปนี้พร้อมตัวยึด:

---
ทดสอบ:
  การกำหนดค่า: {{ prop.resolveme }}

และไฟล์ YAML ลับต่อไปนี้:

---
เสา:
  การแก้ไข:
    - 8.8.8.8
    - 1.1.1.1
    - 192.168.0.1

ไฟล์ YAML ที่แก้ไขแล้วมีลักษณะดังนี้:

---
ทดสอบ:
  config: [u'8.8.8.8', u'1.1.1.1', u'192.168.0.1']

(หมายเหตุ: ถ้าฉันใช้รายการที่คั่นด้วยเครื่องหมายจุลภาค มันก็ทำงานตามที่ต้องการ)

ทำไมสิ่งนี้ถึงเกิดขึ้น? ฉันไม่พบสิ่งใดในข้อมูลจำเพาะของ YAML ที่อธิบายพฤติกรรมนี้ ดังนั้นฉันคิดว่ามันต้องเป็นสิ่งที่ตัวแยกวิเคราะห์ Ansible ทำ (ดูเหมือนว่าจะเกี่ยวข้องกับ Unicode หรือไม่) เป็นไปได้ไหมที่จะได้รับโครงสร้างรายการที่ต้องการโดยใช้การแก้ไขพารามิเตอร์ Ansible หรือฉันควรเลือกรายการที่คั่นด้วยเครื่องหมายจุลภาค

Score:1
ธง br

ฉันไม่สามารถจำลองปัญหาของคุณใน Linux และ ใช้งานได้ [core 2.11.6] กับ รุ่นหลาม = 3.8.5 และ เวอร์ชันจินจา = 3.0.1. ลองแปลงอย่างชัดเจนเป็น สตริง. เทมเพลตด้านล่าง

---
ทดสอบ:
  การกำหนดค่า: {{ prop.resolveme }}
  config: {{ prop.resolveme|map('string') }}

ให้

---
ทดสอบ:
  config: ['8.8.8.8', '1.1.1.1', '192.168.0.1']
  config: ['8.8.8.8', '1.1.1.1', '192.168.0.1']

หากวิธีนี้ไม่ได้ผล คุณสามารถลองใช้กำลังดุร้าย

---
ทดสอบ:
    config: [{% for i in prop.resolveme %}'{{ "%s"|format(i) }}'{% if not loop.last %}, {% endif%}{% endfor %}]

โพสต์คำตอบ

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