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

include_role และ import_role ขณะทำงาน

เรียกใช้ Role แบบไดนามิกระหว่าง Play

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

นอกเหนือจากรายการ Roles

รายการ roles ระดับบนสุดจะใช้บทบาททั้งหมดก่อนเริ่มงานใด ๆ แต่บางครั้งคุณอาจต้องการเรียกใช้บทบาทระหว่างเพลย์ ในตำแหน่งเดียวกับที่งานนั้นอยู่

เรียกใช้ Role เป็นงาน

ทั้ง include_role และ import_role ช่วยให้คุณเรียกใช้บทบาทจากภายในส่วน tasks ได้ โดยวางไว้ตามลำดับเดียวกับขั้นตอนอื่น ๆ

tasks:
  - import_role:
      name: nginx

import_role เป็นแบบคงที่

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

include_role เป็นแบบไดนามิก

include_role จะถูกประมวลผลระหว่างการทำงาน ณ เวลาที่มาถึงงานนั้น จึงตอบสนองต่อข้อเท็จจริงและผลลัพธ์ที่ลงทะเบียนไว้ได้

tasks:
  - include_role:
      name: backup
    when: do_backup

วนซ้ำเหนือ Role

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

- include_role:
    name: deploy_app
  loop: "{{ app_list }}"

import_role วนซ้ำไม่ได้

เนื่องจาก import_role แก้ไขระหว่างเวลาแยกวิเคราะห์ จึงไม่รองรับ loop ให้ใช้ include_role เมื่อต้องการเรียกใช้บทบาทซ้ำ

พฤติกรรมของ when แตกต่างกันอย่างไร

when ที่ใช้กับ import_role จะคัดลอกเงื่อนไขไปยังทุกงานภายใน ส่วน when ที่ใช้กับ include_role จะควบคุมบทบาททั้งหมดในฐานะหน่วยเดียว

ส่งตัวแปรได้ทั้งสองแบบ

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

- include_role:
    name: web
  vars:
    http_port: 8080

แท็กกับแบบคงที่และไดนามิก

เมื่อใช้ import_role แท็กของงานที่นำเข้าจะมองเห็นได้ด้วย --list-tags แต่เมื่อใช้ include_role คุณต้องใส่แท็กให้กับ include เอง

เลือกเครื่องมือที่เหมาะสม

เลือกใช้ import_role สำหรับโครงสร้างที่คาดเดาได้และทำงานเสมอ เลือกใช้ include_role เมื่อบทบาทต้องทำงานแบบมีเงื่อนไขหรืออยู่ในลูป

รูปแบบเดียวกันในสองระดับ

Ansible มีการแบ่งแบบคงที่กับแบบไดนามิกในลักษณะเดียวกันสำหรับไฟล์งาน ได้แก่ import_tasks และ include_tasks ซึ่งทำงานสอดคล้องกับคีย์เวิร์ดของบทบาทเหล่านี้

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

ลองนึกดูว่าคีย์เวิร์ดใดสามารถใช้บทบาทภายในลูปได้

สรุป

ใช้ import_role สำหรับโครงสร้างแบบคงที่ที่แยกวิเคราะห์ตั้งแต่ต้น และใช้ include_role สำหรับการเรียกใช้แบบไดนามิกขณะทำงาน ซึ่งรองรับลูปและเงื่อนไข 🔁

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

บทเรียน “include_role และ import_role ขณะทำงาน” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “include_role และ import_role ขณะทำงาน”

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

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

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

บทเรียน “include_role และ import_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