การพึ่งพา Role ใน meta/main.yml
เชื่อมต่อ Role ที่ต้องใช้ Role อื่น
การพึ่งพา Role ใน meta/main.yml เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
บทบาทที่ต้องพึ่งพาบทบาทอื่น
บทบาทบางอย่างจะทำงานได้ก็ต่อเมื่อมีบทบาทอื่นทำงานก่อน บทบาทแอปของคุณอาจต้องใช้บทบาทพื้นฐานเพื่อเสริมความปลอดภัยให้เซิร์ฟเวอร์ก่อนนำแอปไปใช้งาน
ทำความรู้จัก meta/main.yml
ทุกบทบาทสามารถมีไฟล์ meta/main.yml ได้ ไฟล์นี้เก็บข้อมูลเมตาของบทบาท เช่น ผู้เขียน แพลตฟอร์มที่รองรับ และสิ่งที่บทบาทนี้ต้องพึ่งพา
คีย์ dependencies
ภายใน meta/main.yml คีย์ dependencies จะแสดงรายการบทบาทที่ต้องทำงานก่อนบทบาทนี้ Ansible จะนำบทบาทเหล่านั้นไปใช้ก่อนโดยอัตโนมัติ
dependencies:
- role: common
- role: firewallDependencies ทำงานก่อน
เมื่อคุณนำบทบาทไปใช้ Ansible จะเรียกใช้ dependencies ที่ระบุไว้ก่อน ตามลำดับที่ปรากฏ จากนั้นจึงทำงานของบทบาทคุณเอง
ส่งตัวแปรให้ Dependency
คุณสามารถส่งตัวแปรให้ dependency ได้โดยตรงในรายการ บทบาทพื้นฐานจะทำงานด้วยการตั้งค่าที่ตรงกับความต้องการของบทบาทนี้พอดี
dependencies:
- role: nginx
vars:
http_port: 8080ห่วงโซ่ Dependency จริง
บทบาทเว็บแอปต้องพึ่งพา nginx ซึ่งต้องพึ่งพา common อีกทอดหนึ่ง เมื่อนำ webapp ไปใช้ ระบบจะแก้ไข chain ทั้งหมดจากบนลงล่างให้คุณ
Dependencies แบบมีเงื่อนไข
Dependency สามารถมีเงื่อนไข when ได้ จึงทำงานเฉพาะบนโฮสต์ที่ตรงเงื่อนไขเท่านั้น ตัวอย่างเช่น ข้ามบทบาทไฟร์วอลล์บนเครื่องพัฒนา
dependencies:
- role: firewall
when: env == 'prod'Dependencies เป็นแบบคงที่
Dependencies ใน meta จะถูกแก้ไขก่อนเริ่มเพลย์ จึงไม่สามารถใช้ข้อเท็จจริงขณะทำงานที่รวบรวมภายหลังได้ ดังนั้นควรรักษาเงื่อนไขให้เรียบง่าย
Galaxy อ่าน meta ด้วย
เมื่อคุณติดตั้งบทบาทจาก Ansible Galaxy ระบบจะอ่าน meta/main.yml และดึง dependency ทุกตัวที่ระบุไว้โดยอัตโนมัติ
ระบุ Dependencies ตามความเป็นจริง
ระบุบทบาทเป็น dependency เฉพาะเมื่อจำเป็นต้องทำงานก่อนจริง ๆ เท่านั้น ห่วงโซ่ที่ซ่อนอยู่ทำให้ระบบอัตโนมัติเข้าใจและแก้ไขข้อผิดพลาดได้ยาก
ข้อมูล Galaxy ก็อยู่ที่นี่เช่นกัน
นอกจาก dependencies แล้ว meta/main.yml ยังเก็บ galaxy_info ซึ่งประกอบด้วยใบอนุญาต เวอร์ชัน Ansible ขั้นต่ำ และแพลตฟอร์ม ข้อมูลนี้อธิบายวิธีใช้บทบาท
ตรวจสอบอย่างรวดเร็ว
ลองนึกดูว่าคุณประกาศที่ใดว่าบทบาทหนึ่งต้องทำงานก่อนอีกบทบาทหนึ่ง
สรุป
แสดงรายการบทบาทที่จำเป็นไว้ใต้ dependencies ใน meta/main.yml แล้ว Ansible จะเรียกใช้ห่วงโซ่นั้นก่อน โดยอาจส่ง vars และเงื่อนไขเพิ่มเติมได้ 🔗
คำถามที่พบบ่อย
บทเรียน “การพึ่งพา Role ใน meta/main.yml” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การพึ่งพา Role ใน meta/main.yml” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การพึ่งพา Role ใน meta/main.yml”
เชื่อมต่อ Role ที่ต้องใช้ Role อื่น คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การพึ่งพา Role ใน meta/main.yml” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การพึ่งพา Role ใน meta/main.yml
- defaults เทียบกับ vars: ลำดับการเขียนทับ
- include_role และ import_role ขณะทำงาน
- allow_duplicates และความทำซ้ำได้ของ Role