0Pricing
DevOps Bootcamp · บทเรียน

allow_duplicates และความทำซ้ำได้ของ Role

ควบคุมการเรียกใช้ Role ซ้ำ

allow_duplicates และความทำซ้ำได้ของ Role เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

บทบาททำงานครั้งเดียวเป็นค่าเริ่มต้น

หากบทบาทสองบทบาทต่างต้องพึ่งพาบทบาท common เดียวกัน Ansible จะทำงานอย่างชาญฉลาด โดยเรียกใช้ common เพียงครั้งเดียว ไม่ใช่สองครั้งภายในเพลย์เดียว

เหตุผลที่มีการตัดรายการซ้ำ

deduplication นี้ช่วยป้องกันไม่ให้บทบาทสำหรับการตั้งค่าร่วมทำงานซ้ำโดยไม่จำเป็น เช่น การเรียกใช้บทบาทเสริมความปลอดภัยพื้นฐานซ้ำสำหรับทุกบทบาทแอป

Role เดิม พารามิเตอร์เดิม

การข้ามนี้มีผลเฉพาะเมื่อเรียกใช้บทบาทด้วย same parameters เดิมเท่านั้น การเรียกใช้ที่เหมือนกันจะถือว่าทำเสร็จแล้ว

พารามิเตอร์ต่างกัน จึงทำงานอีกครั้ง

เรียกใช้บทบาทเดิมด้วย different variables แล้ว Ansible จะทำงานนั้นอีกครั้ง บทบาท vhost ที่มีการตั้งค่าสองแบบจะถูกนำไปใช้สองครั้งตามที่คุณต้องการ

roles:
  - role: vhost
    vars: { name: site_a }
  - role: vhost
    vars: { name: site_b }

ทำความรู้จัก allow_duplicates

การตั้งค่า allow_duplicates ใน meta/main.yml เป็นตัวควบคุมพฤติกรรมนี้ กำหนดเป็น true แล้วบทบาทจะสามารถทำงานซ้ำหลายครั้งภายในเพลย์ได้

# meta/main.yml
allow_duplicates: true

เมื่อใดควรอนุญาตให้ซ้ำ

เปิดใช้ตัวเลือกนี้กับบทบาทที่ตั้งใจให้นำไปใช้หลายครั้ง เช่น การสร้างผู้ใช้หรือโฮสต์เสมือนหลายรายการ โดยแต่ละการเรียกใช้ต้องทำงานใหม่อย่างแท้จริง

ค่าเริ่มต้นคือ False

โดยค่าเริ่มต้น allow_duplicates เป็น false ดังนั้นบทบาทที่มีพารามิเตอร์เหมือนกันจะทำงานเพียงครั้งเดียว ปิดตัวเลือกนี้ไว้สำหรับบทบาทที่ตั้งค่าเพียงครั้งเดียว

การตัดรายการซ้ำไม่ใช่ Idempotency

การข้ามการเรียกใช้ซ้ำเป็นเพียงความสะดวกระหว่างการทำงาน ส่วน idempotency ที่แท้จริงคือการที่แต่ละงานปรับเข้าสู่สถานะเป้าหมาย ไม่ว่าจะทำงานกี่ครั้งก็ตาม

สร้างงานแบบ Idempotent

ภายในบทบาท ให้เลือกใช้โมดูลที่อิงตามสถานะแทนคำสั่งดิบ บทบาทที่เป็น idempotent อย่างแท้จริงจะปลอดภัยเมื่อนำไปใช้ซ้ำสองครั้งโดยไม่ก่อให้เกิดผลเสีย

include_role ทำงานซ้ำเสมอ

โปรดระวัง: include_role ไม่ได้ปฏิบัติตามตรรกะการตัดรายการซ้ำในลักษณะเดียวกัน บทบาทที่รวมแบบไดนามิกจะทำงานทุกครั้งที่การทำงานมาถึงตำแหน่งนั้น

ประกอบรวมได้และปลอดภัย

ผสานการตัดรายการซ้ำ, allow_duplicates และงานแบบ idempotent เพื่อสร้าง hierarchies ของบทบาทที่ประกอบรวมกันได้อย่างเป็นระเบียบและยังปลอดภัยเมื่อนำกลับมาทำงานซ้ำ

ตรวจสอบอย่างรวดเร็ว

โปรดนึกถึงการตั้งค่าที่ทำให้บทบาททำงานได้มากกว่าหนึ่งครั้งในเพลย์

ทบทวน

Ansible จะตัดการเรียกใช้บทบาทที่เหมือนกันซ้ำ ตั้งค่า allow_duplicates เป็น true เพื่อเรียกใช้ซ้ำหนึ่งครั้ง และทำให้งานมีคุณสมบัติทำซ้ำได้อย่างปลอดภัยเมื่อเรียกใช้อีกครั้ง ♻️

คำถามที่พบบ่อย

บทเรียน “allow_duplicates และความทำซ้ำได้ของ Role” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “allow_duplicates และความทำซ้ำได้ของ Role” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “allow_duplicates และความทำซ้ำได้ของ Role”

ควบคุมการเรียกใช้ Role ซ้ำ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “allow_duplicates และความทำซ้ำได้ของ Role” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การพึ่งพา Role ใน meta/main.yml
  2. defaults เทียบกับ vars: ลำดับการเขียนทับ
  3. include_role และ import_role ขณะทำงาน
  4. allow_duplicates และความทำซ้ำได้ของ Role
← กลับไปที่ DevOps Bootcamp