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

แจ้ง Handler เมื่อมีการเปลี่ยนแปลง

เชื่อมงานให้เรียกใช้ Handler

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

รีสตาร์ตเมื่อจำเป็นเท่านั้น

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

ตัวจัดการคืออะไร

ตัวจัดการก็คืองานที่รออยู่เฉย ๆ จนกว่างานทั่วไปจะสั่งให้ทำงาน ลองนึกภาพว่าเป็นการกระทำที่รอสัญญาณ

คีย์เวิร์ด notify

เชื่อมงานเข้ากับตัวจัดการด้วยคีย์เวิร์ด notify ค่าที่ระบุคือตัวจัดการที่ต้องการปลุกให้ทำงานแบบตรงตามชื่อ

- name: Copy nginx config
  ansible.builtin.copy:
    src: nginx.conf
    dest: /etc/nginx/nginx.conf
  notify: Restart nginx

ชื่อต้องตรงกัน

สตริงใน notify ต้องตรงกับชื่อตัวจัดการทุกตัวอักษร หากสะกดผิด ตัวจัดการจะไม่ทำงานโดยไม่มีการแจ้งเตือนที่ชัดเจน

notify ทำงานเมื่อเป็น changed

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

ok หมายถึงไม่แจ้งเตือน

เมื่องานคืนค่าเป็น ok Ansible จะข้าม notify ทั้งหมด นี่จึงเป็นเหตุผลที่การทำงานรอบที่สองมักไม่รีสตาร์ตสิ่งใดเลย ✅

งานหนึ่งงานแจ้งเตือนได้หลายตัว

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

  notify:
    - Restart nginx
    - Reload firewall

การแจ้งเตือนจะถูกเข้าคิว

การแจ้งเตือนไม่ได้ทำให้ตัวจัดการทำงานทันที Ansible จะ เข้าคิว ไว้ แล้วจึงทำงานภายหลังเมื่อ งานทั้งหมดในเพลย์เสร็จสิ้น

ตัวจัดการแต่ละตัวทำงานครั้งเดียว

หากมีงานห้างานแจ้งเตือนตัวจัดการเดียวกัน ตัวจัดการนั้นก็ยังทำงาน ครั้งเดียว Ansible จะตัดการแจ้งเตือนที่ซ้ำกันออกจากคิวโดยอัตโนมัติ

เหตุใดวิธีนี้จึงช่วยลดช่วงหยุดให้บริการ

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

ภาพรวมทั้งหมด

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

ตรวจสอบความเข้าใจ

ตัวจัดการที่ได้รับการแจ้งเตือนจะถูกเรียกใช้เมื่อใด

สรุปทบทวน

คุณได้เรียนรู้ว่า notify เชื่อมงานเข้ากับตัวจัดการที่ทำงานเฉพาะเมื่อมีการเปลี่ยนแปลง ชื่อต้องตรงกัน และ Ansible จะเข้าคิวตัวจัดการแต่ละตัวให้ทำงานเพียงครั้งเดียว 🚀

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

บทเรียน “แจ้ง Handler เมื่อมีการเปลี่ยนแปลง” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “แจ้ง Handler เมื่อมีการเปลี่ยนแปลง”

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

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

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

บทเรียน “แจ้ง Handler เมื่อมีการเปลี่ยนแปลง” ใช้เวลานานแค่ไหน

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

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

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

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

  1. แจ้ง Handler เมื่อมีการเปลี่ยนแปลง
  2. กำหนด Handler และรูปแบบการเริ่มบริการใหม่
  3. Handler ทำงานเมื่อใดและ flush_handlers
  4. Listen: ตัวกระตุ้นเดียว หลาย Handler
← กลับไปที่ Ansible Academy