แท็กพิเศษ always และ never
บังคับหรือบล็อกงานโดยไม่คำนึงถึงเงื่อนไข
แท็กพิเศษ always และ never เป็นบทเรียน Ansible Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ansible Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน
ป้ายกำกับที่สงวนไว้สองรายการ
Ansible สงวนชื่อป้ายกำกับพิเศษสองชื่อที่มีพฤติกรรมในตัว ได้แก่ always และ never ทั้งสองไม่ใช่ตัวกรอง แต่เป็นกฎการทำงาน 🔒
always ทำงานทุกครั้ง
งานที่ติดป้ายกำกับ always จะทำงานในทุกเพลย์ ไม่ว่าคุณจะส่ง --tags ใดก็ตาม เหมาะอย่างยิ่งสำหรับการตั้งค่าที่ต้องทำเสมอ
- name: Gather setup
ansible.builtin.setup:
tags:
- alwaysการข้าม always
มีทางเลือกหนึ่งสำหรับยกเว้น: การส่ง --skip-tags always จะยกเว้นแม้แต่งานเหล่านั้นเมื่อจำเป็นจริง ๆ
ansible-playbook site.yml --skip-tags alwaysการใช้งาน always ที่เหมาะสม
การโหลดตัวแปรหรือข้อเท็จจริงที่งานถัดไปต้องพึ่งพาเหมาะกับ always อย่างยิ่ง เพราะข้อมูลเหล่านี้จะมีอยู่เสมอไม่ว่าคุณจะกรองอย่างไร
- ansible.builtin.include_vars: app.yml
tags:
- alwaysnever ยังคงซ่อนอยู่
งานที่ติดป้ายกำกับ never จะถูกข้ามตามค่าเริ่มต้น และจะทำงานก็ต่อเมื่อคุณเรียกใช้โดยระบุป้ายกำกับนั้นหรือป้ายกำกับอื่นของงานอย่างชัดเจน
- name: Wipe database
ansible.builtin.command: drop-all
tags:
- never
- debugเลือกใช้ never
หากต้องการเรียกใช้งาน never ให้ระบุชื่อโดยตรงด้วย --tags การเรียกใช้งานนี้จะยกเลิกการข้ามตามค่าเริ่มต้น
ansible-playbook site.yml --tags debugใช้ never กับขั้นตอนที่เป็นอันตราย
ใช้ never เพื่อป้องกันงานที่มีความเสี่ยงหรือจำเป็นต้องใช้ไม่บ่อย เช่น การล้างข้อมูลแบบทำลาย เพื่อไม่ให้ทำงานโดยบังเอิญ
จับคู่ never กับป้ายกำกับจริง
เพิ่มป้ายกำกับที่สองให้กับงาน never ด้วย จากนั้นคุณจะเรียกใช้งานผ่านชื่อที่เข้าใจง่ายนั้น ขณะที่ never ยังคงป้องกันไม่ให้ทำงานตามค่าเริ่มต้น
always เหนือกว่าการเลือก
แม้คุณจะเรียกใช้ --tags config งานที่มีป้ายกำกับ always ทุกงานก็ยังทำงานร่วมกับงานที่เลือกไว้ เพราะ always มีผลเพิ่มเติมจากการเลือก
ค่าเริ่มต้นที่ตรงข้ามกันสองแบบ
โปรดจำความสมมาตรนี้ไว้: always ทำให้งานถูกเลือกให้ทำงานเว้นแต่จะถูกข้าม ส่วน never ทำให้งานถูกยกเว้นเว้นแต่จะมีการเรียกใช้อย่างชัดเจน
งานล้างข้อมูลอย่างปลอดภัย
งานที่ทำลายข้อมูลนี้มีทั้ง never และป้ายกำกับ cleanup จึงทำงานเฉพาะเมื่อคุณตั้งใจเรียกใช้การล้างข้อมูลเท่านั้น 🛡️
- name: Reset state
ansible.builtin.command: reset.sh
tags:
- never
- cleanupตรวจสอบสั้น ๆ
งานหนึ่งติดป้ายกำกับไว้เพียง never งานนั้นจะทำงานเมื่อใด
สรุป
คุณได้เรียนรู้ว่า always จะทำงานเว้นแต่ถูกข้าม และ never จะยังไม่ทำงานจนกว่าคุณจะเรียกใช้ป้ายกำกับอย่างชัดเจน ซึ่งช่วยป้องกันงานที่มีความเสี่ยง ✅
คำถามที่พบบ่อย
บทเรียน “แท็กพิเศษ always และ never” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “แท็กพิเศษ always และ never” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ansible Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “แท็กพิเศษ always และ never”
บังคับหรือบล็อกงานโดยไม่คำนึงถึงเงื่อนไข คุณปฏิบัติ Ansible Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ansible Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ansible Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “แท็กพิเศษ always และ never” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ansible Academy นี้ได้ไหม
ได้ บทเรียน Ansible Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ติดแท็ก Tasks, Plays และ Roles
- กรองการทำงานด้วย --tags และ --skip-tags
- แท็กพิเศษ always และ never
- แสดงแท็กและงานก่อนเรียกใช้