Score:0

Ansible conditional พร้อมตัวแปรและสัญลักษณ์แทน

ธง au

พยายามเพิ่มเงื่อนไขด้วยสัญลักษณ์แทนและตัวแปร Ansible และได้รับข้อความแสดงข้อผิดพลาด แนวคิดคือการทริกเกอร์คำขอ API ด้วยชื่อคอนเทนเนอร์ที่ขึ้นต้นด้วย "android-" ซึ่งเป็นการติดตามเพลย์บุ๊กการสร้างคอนเทนเนอร์นักเทียบท่า

คู่มือการเล่นของฉัน:

---
- ชื่อ: ย้ายตัวแทน android
  โฮสต์: server1; เซิร์ฟเวอร์2
  วาร์:
    ตู้คอนเทนเนอร์: "{{ ตู้คอนเทนเนอร์ }}" #variable ในไฟล์อื่น

งาน:
    - ชื่อ: ย้ายตัวแทน Android
      คำสั่ง: curl "คำขอ API ไปยังเซิร์ฟเวอร์"
      เมื่อ: "containers.startswith('android-*')"

ข้อผิดพลาด:

งาน [ย้ายตัวแทน Android] *********************************************** **********
  ร้ายแรง: [เซิร์ฟเวอร์ 1]: ล้มเหลว! => {"msg": "การตรวจสอบเงื่อนไข 'containers.startswith('android-*')' ล้มเหลว ข้อผิดพลาดคือ: ข้อผิดพลาดขณะประเมินเงื่อนไข (containers.startswith('android-*')): 'list object' ไม่มีแอตทริบิวต์ 'startswith'\n\nข้อผิดพลาดดูเหมือนจะอยู่ใน '/directory/were/the/playbook/is/move-agent-android.yml': บรรทัดที่ 13 คอลัมน์ 7 แต่อาจ\nอยู่ที่อื่นในไฟล์ ขึ้นอยู่กับปัญหาทางไวยากรณ์\n\nบรรทัดที่ไม่เหมาะสมจะเป็น:\n\n\n - ชื่อ: ตัวแทนการย้าย Android\n ^ ที่นี่\n"}

ฉันพยายามเปลี่ยนเงื่อนไขเป็นเวอร์ชันต่างๆ และได้รับข้อผิดพลาดเดียวกันทั้งหมด

รุ่นอื่นๆ:

เมื่อ: "คอนเทนเนอร์ตรงกัน ('android-*')"

เมื่อ: item.name.startswith('android-*')

เมื่อ: "{{ คอนเทนเนอร์ }}" ตรงกัน ('android-*')

ความคิดใดที่จะแก้ไขข้อผิดพลาด?

Score:1
ธง br

พยายาม

เมื่อ: "คอนเทนเนอร์ตรงกัน ('^android-.*$')"

มันคือ Python regex จุด '.' หายไปต่อหน้าดาว '*' นอกจากนี้ คุณต้องเริ่ม "^" และสิ้นสุด "$" นิพจน์ในกรณีที่ตรงกัน

flowerysong avatar
th flag
แม้ว่าจะไม่เจ็บ แต่ในทางเทคนิคแล้ว คุณเพียงแค่ต้องยึดจุดสิ้นสุดของ `match` เท่านั้น เพราะมันยึดกับจุดเริ่มต้นโดยปริยาย ในกรณีเฉพาะนี้ จุดยึดท้ายก็ไม่มีประโยชน์เช่นกัน เนื่องจาก `.*` จะจับคู่กับจุดสิ้นสุดเสมอ วิธีแก้ปัญหาที่ง่ายที่สุดคือการเลิกใช้ `*`: `is match('android-')` จะจับคู่สตริงทั้งหมดที่ขึ้นต้นด้วย `android-` ซึ่งเป็นผลลัพธ์ที่ต้องการ
br flag
ดู[อะไรคือความคิดเห็น และเมื่อใดที่ฉันไม่ควรแสดงความคิดเห็น](https://meta.stackexchange.com/questions/19756/how-do-comments-work) คุณไม่ได้ขอคำชี้แจง ข้อมูลไม่ใช่ข้อมูลเล็กน้อยหรือชั่วคราว และฉันจะไม่ "ปรับปรุง" โพสต์เกี่ยวกับคำวิจารณ์ที่ "สร้างสรรค์" ของคุณโดยไม่ต้องให้เหตุผล ฉันขอแนะนำให้คุณโพสต์คำตอบของคุณ
flowerysong avatar
th flag
เป็นคำวิจารณ์ที่สร้างสรรค์เกี่ยวกับวิธีการปรับปรุงโพสต์ของคุณ คุณไม่จำเป็นต้องรับมัน
br flag
อะไรทำให้คุณโพสต์คำตอบไม่ได้

โพสต์คำตอบ

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