อ้างจาก เงื่อนไขที่มีการรวม:
เมื่อคุณใช้เงื่อนไขในคำสั่ง include_* เงื่อนไขจะถูกนำไปใช้กับงานรวมเท่านั้นและจะไม่ใช้กับงานอื่นภายในไฟล์ที่รวม
ใช้งานได้ตามที่คาดไว้
- include_tasks: set-x.yml
เมื่อ: x ไม่ได้กำหนดไว้
จะไม่ใช้งานจากไฟล์ที่รวมไว้
งาน [include_tasks] *********************************************** **
รวม: /export/scratch/tmp8/set-x.yml สำหรับ localhost
สถานการณ์แตกต่างกับ บล็อก. อ้างจาก การจัดกลุ่มงานด้วยบล็อก:
งานทั้งหมดในคำสั่งสืบทอดบล็อกถูกนำไปใช้ที่ระดับบล็อก ... คำสั่งไม่ส่งผลกระทบต่อตัวบล็อกเอง แต่จะสืบทอดมาจากงานที่ล้อมรอบด้วยบล็อกเท่านั้น ตัวอย่างเช่น คำสั่ง when ใช้กับงานภายในบล็อก ไม่ใช่กับตัวบล็อก
ถ้าคุณใส่ include_tasks ลงในบล็อก
- บล็อก:
- include_tasks: set-x.yml
เมื่อ: x ไม่ได้กำหนดไว้
เงื่อนไขถูกนำไปใช้กับงานทั้งหมด รวมถึงงานที่รวมอยู่ด้วย ดังนั้นจึงเป็นการแทนที่กฎก่อนหน้านี้ที่เงื่อนไขจะถูกนำไปใช้เฉพาะกับงานที่รวมเท่านั้น
งาน [include_tasks] *********************************************** ***
รวม: /export/scratch/tmp8/set-x.yml สำหรับ localhost
งาน [set_fact] *********************************************** ********
ตกลง: [localhost]
งาน [แก้ไขข้อบกพร่อง] *********************************************** ***********
การข้าม: [localhost]
เปิด ปัญหา ถ้าคุณคิดว่านี่เป็นข้อบกพร่อง