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: nginximport_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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การพึ่งพา Role ใน meta/main.yml
- defaults เทียบกับ vars: ลำดับการเขียนทับ
- include_role และ import_role ขณะทำงาน
- allow_duplicates และความทำซ้ำได้ของ Role