Score:0

Ansible with_items ไม่วนซ้ำ

ธง cn

ฉันคิดว่าฉันอยู่ตรงนี้นานเกินไป แต่ฉันไม่สามารถเข้าใจได้ว่าทำไมชีวิตที่สองของฉัน with_items ไม่วนซ้ำเหมือนครั้งแรกของฉัน ฉันลองใช้ a json_query เหมือนในงานแรกซึ่งไม่ได้ช่วยอะไร

งาน:

- ชื่อ: ตั้งค่า backing_lunuuid
  set_fact:
    backing_lunuuid: "{{ รายการ | json_query('guest_disk_info.*.backing_lunuuid') }}" 
  with_items: " {{ rdm_jsondata.results }}" 

- แก้ปัญหา:
    ข้อความ: " {{ backing_lunuuid }}" 

- ชื่อ: ลบ backing_lunuuid นำหน้าและต่อท้ายเพื่อตั้งค่า disk.UUID  
  set_fact:
    rdm_uuid: "{{ รายการ[10:-12] }}"
  with_items: " {{ backing_lunuuid }}" 

- แก้ปัญหา:
    ข้อความ: " {{ rdm_uuid }}" 

เอาต์พุตการดีบักแรก (สำหรับ backing_lunuuid):

    งาน [แก้ไขข้อบกพร่อง] *********************************************** ************************************************** ************************************************** ******************************************
ตกลง: [localhost] => {
    "msg": " ['0200110000600507681081007e1800000000000053323134352020', '02000f0000600507681081007e1800000000000051323134352020', '0200150000600507681081007e1800000000000059323134352020', '0200130000600507681081007e1800000000000055323134352020', '0200140000600507681081007e1800000000000056323134352020', '0200240000600507681081007e1800000000000057323134352020', '0200420000600507681081007e1800000000000058323134352020', '0200100000600507681081007e1800000000000052323134352020', '0200120000600507681081007e1800000000000054323134352020']"

เอาต์พุตการดีบักที่สอง (สำหรับ rdm_uuid) ซึ่งไม่วนซ้ำเหมือนครั้งแรก"

    TASK [ลบ backing_lunuuid นำหน้าและต่อท้ายเพื่อตั้งค่า disk.UUID] ************************************* ************************************************** ***********************************************
ตกลง: [localhost] => (รายการ=0200110000600507681081007e1800000000000053323134352020)
ตกลง: [localhost] => (รายการ=02000f0000600507681081007e1800000000000051323134352020)
ตกลง: [localhost] => (รายการ=0200150000600507681081007e1800000000000059323134352020)
ตกลง: [localhost] => (รายการ=0200130000600507681081007e1800000000000055323134352020)
ตกลง: [localhost] => (รายการ=0200140000600507681081007e1800000000000056323134352020)
ตกลง: [localhost] => (รายการ=0200240000600507681081007e1800000000000057323134352020)
ตกลง: [localhost] => (รายการ=0200420000600507681081007e1800000000000058323134352020)
ตกลง: [localhost] => (รายการ=0200100000600507681081007e1800000000000052323134352020)
ตกลง: [localhost] => (รายการ=0200120000600507681081007e1800000000000054323134352020)

งาน [แก้ไขข้อบกพร่อง] *********************************************** ************************************************** ************************************************** ******************************************
ตกลง: [localhost] => {
    "msg": " 600507681081007e1800000000000054"

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก

Score:0
ธง br

ใช้ regex_replace เพื่อหั่นสิ่งของในท่อ

rdm_uuid: "{{ backing_lunuuid|แผนที่('regex_replace', regex, แทนที่)|รายการ }}"
regex: '.{10}(.*).{12}'
แทนที่: '\1'
Score:0
ธง vn

คุณกำลังเขียนทับ rdm_uuid การวนซ้ำแต่ละครั้ง ลองสิ่งนี้:

- ชื่อ: ลบ backing_lunuuid นำหน้าและต่อท้ายเพื่อตั้งค่า disk.UUID  
  set_fact:
    rdm_uuid: "{{ rdm_uuid | ค่าเริ่มต้น([]) + [รายการ[10:-12]] }}"
  with_items: " {{ backing_lunuuid }}" 

แก้ไข: สิ่งแรกกำลังทำสิ่งเดียวกัน แต่องค์ประกอบสุดท้ายของ rdm_jsondata.results มีข้อมูลที่คุณต้องการ ลองหาดูครับ rdm_jsondata.results.

cn flag
อาใช่ สมบูรณ์แบบ! ฉันเพิ่งดูสิ่งนี้ (Ansible) นานเกินไป หรือไม่ได้โฟกัสเพียงพอ (เนื่องจากพยายามเล่นปาหี่หลายสิ่งพร้อมกันมากเกินไป) ขอบคุณมาก!

โพสต์คำตอบ

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