แจ้ง 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แจ้ง Handler เมื่อมีการเปลี่ยนแปลง
- กำหนด Handler และรูปแบบการเริ่มบริการใหม่
- Handler ทำงานเมื่อใดและ flush_handlers
- Listen: ตัวกระตุ้นเดียว หลาย Handler