0Pricing
Ansible Academy · บทเรียน

ส่วนประกอบของไดเรกทอรี Role

tasks, handlers, templates, defaults และ vars

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

บทบาทคือโครงสร้างต้นไม้ของโฟลเดอร์

บทบาทก็คือไดเรกทอรีที่มีโฟลเดอร์ย่อยตามชุดที่กำหนดไว้ตายตัว Ansible รู้จักแต่ละโฟลเดอร์ตามชื่อและโหลดเนื้อหาภายในโดยอัตโนมัติ

roles/
  nginx/
    tasks/
    handlers/
    templates/

tasks/main.yml คือจุดเริ่มต้น

ไฟล์ tasks/main.yml เก็บรายการงานหลักของบทบาท และเป็นสิ่งแรกที่ Ansible เรียกใช้เมื่อมีการนำบทบาทไปใช้

tasks/main.yml:
- name: Install nginx
  ansible.builtin.package:
    name: nginx

handlers/ เก็บตรรกะการเริ่มบริการใหม่

โฟลเดอร์ ตัวจัดการกำหนดการดำเนินการต่าง ๆ เช่น การเริ่มบริการใหม่ งานจะแจ้งให้ตัวจัดการเหล่านี้ทำงาน เพื่อให้เริ่มบริการใหม่เฉพาะเมื่อมีการเปลี่ยนแปลงเท่านั้น

templates/ สำหรับไฟล์ Jinja2

วางไฟล์แม่แบบ .j2 ไว้ใน templates/ โมดูลแม่แบบจะค้นหาไฟล์เหล่านั้นจากชื่อโดยไม่ต้องระบุเส้นทางแบบเต็ม

templates/
  nginx.conf.j2

files/ สำหรับไฟล์คงที่

โฟลเดอร์ ไฟล์ใช้เก็บไฟล์ธรรมดาที่คุณคัดลอกไปโดยไม่เปลี่ยนแปลง โมดูลคัดลอกจะค้นหาไฟล์เหล่านี้โดยอัตโนมัติ เช่นเดียวกับแม่แบบ

defaults/ กำหนดตัวแปรลำดับความสำคัญต่ำ

ไฟล์ defaults/main.yml เก็บตัวแปรที่มีลำดับความสำคัญต่ำที่สุด เพื่อให้ผู้ใช้สามารถกำหนดค่าใหม่จากภายนอกบทบาทได้ง่าย

defaults/main.yml:
nginx_port: 80

vars/ กำหนดตัวแปรลำดับความสำคัญสูง

ไฟล์ vars/main.yml เก็บตัวแปรที่มีลำดับความสำคัญสูงกว่า ใช้ไฟล์นี้สำหรับค่าที่บทบาทต้องพึ่งพาและไม่ควรเปลี่ยนแปลงบ่อย

meta/main.yml อธิบายบทบาท

ไฟล์ meta/main.yml แสดงรายชื่อผู้เขียน ใบอนุญาต แพลตฟอร์มที่รองรับ และการพึ่งพาบทบาทอื่น ๆ

main.yml คือชื่อพิเศษ

ภายใน tasks, handlers, vars และ defaults นั้น Ansible จะโหลดไฟล์ชื่อ main.yml โดยอัตโนมัติ การตั้งชื่อนี้เป็นแบบแผนที่ทำให้ทุกส่วนทำงานเชื่อมโยงกัน

ใช้เฉพาะส่วนที่จำเป็น

บทบาทไม่จำเป็นต้องมีทุกโฟลเดอร์ หากไม่มีแม่แบบ ก็เพียงไม่ต้องสร้างโฟลเดอร์ templates Ansible จะละเว้นโฟลเดอร์ตัวเลือกที่ไม่มีอยู่

tests/ และ README เพื่อความสมบูรณ์

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

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

ลองนึกดูว่ารายการงานหลักของบทบาทอยู่ที่ใด

ทบทวน

บทบาทคือโครงสร้างต้นไม้ของโฟลเดอร์ที่กำหนดตำแหน่งตายตัวให้กับงาน ตัวจัดการ แม่แบบ ไฟล์ ค่าเริ่มต้น ตัวแปร และข้อมูลเมตา โดยทั้งหมดอ้างอิงจาก main.yml 📁

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

บทเรียน “ส่วนประกอบของไดเรกทอรี Role” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ส่วนประกอบของไดเรกทอรี Role”

tasks, handlers, templates, defaults และ vars คุณปฏิบัติ Ansible Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “ส่วนประกอบของไดเรกทอรี Role” ใช้เวลานานแค่ไหน

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

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

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

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

  1. เหตุผลที่ต้องใช้ Role: จาก Monolith สู่โมดูล
  2. ส่วนประกอบของไดเรกทอรี Role
  3. สร้างโครงร่าง Role ด้วย ansible-galaxy init
  4. ใช้ Role และส่งต่อตัวแปรของ Role
← กลับไปที่ Ansible Academy