Ansible ละเว้นข้อผิดพลาด

Ansible Lawen Khx Phid Phlad



ขณะกำหนดค่างานบนอุปกรณ์โฮสต์อื่น ข้อผิดพลาด Ansible เป็นเหตุการณ์ทั่วไป สิ่งเหล่านี้แสดงถึงสถานะระบบที่ไม่ซ้ำใครและอาจมีนัยสำคัญ อย่างไรก็ตาม อาจมีข้อผิดพลาดบางอย่างที่เราต้องการหลีกเลี่ยงเพื่อให้งานดำเนินการและแสดงผลลัพธ์หากดำเนินการสำเร็จ ในบทความนี้ เราจะพูดถึงข้อผิดพลาด Ansible และวิธีเพิกเฉยต่อข้อผิดพลาดเหล่านี้ เราสาธิตเทคนิคพิเศษเพื่อระงับและเพิกเฉยต่อความล้มเหลวด้วย Ansible

ตรงกันข้ามกับการแก้ไขข้อผิดพลาด การหลีกเลี่ยงความล้มเหลวทำให้งานดำเนินต่อไปได้มากเท่ากับที่กิจกรรมใน Ansible playbook ไม่ได้รับผลกระทบ เครื่องมือ Ansible จะแสดงข้อความเตือนเมื่อไม่สามารถทำงานหรือ Playbook ให้เสร็จได้ในขณะที่แก้ไขข้อบกพร่องของงาน มีหลายสาเหตุ แต่ขึ้นอยู่กับเราที่จะระบุและหาทางแก้ไข ขออภัย ไม่สามารถแก้ไขข้อผิดพลาดทั้งหมดได้ คุณสามารถเลือกที่จะเริ่มละเว้นข้อผิดพลาดหากคุณไม่ต้องการหรือหากคุณไม่สามารถแก้ไขปัญหาได้







การควบคุมผู้จัดการส่วนใหญ่ใน Ansible ใช้กลยุทธ์นี้ในขณะที่เชื่อมต่อกับโฮสต์เป้าหมายในสถานการณ์จริง ค่าเริ่มต้น Ansible จะยุติกิจกรรมบนอุปกรณ์เป้าหมายและดำเนินกิจกรรมต่อในเซิร์ฟเวอร์อื่นๆ เมื่อใดก็ตามที่ส่งคืนผลลัพธ์ที่ไม่เป็นศูนย์ที่ส่งคืนจากคำสั่งหรือข้อผิดพลาดจากแพ็คเกจ แม้ว่าจะมีบางสถานการณ์ที่คุณอาจต้องทำตัวแตกต่างออกไป ผลลัพธ์ที่ส่งคืนซึ่งไม่เป็นศูนย์ในบางครั้งแสดงถึงความคืบหน้า บ่อยครั้ง คุณอาจต้องการให้การประมวลผลหยุดบนเซิร์ฟเวอร์เดียว เพื่อให้หยุดการประมวลผลบนโฮสต์ทั้งหมด



วิธีละเว้นข้อผิดพลาดใน Ansible

ใน Ansible จะใช้วิธีต่างๆ กันเพื่อดำเนินงานคู่มือการวางแผนกลยุทธ์หากแสดงว่างานล้มเหลว ต่อไปนี้เป็นวิธีต่างๆ ที่จะช่วยดำเนินการแม้ว่า Ansible จะแสดงข้อผิดพลาด:



1. ใช้คำสั่ง Ignore_Errors=True





แม้ว่างานยังคงล้มเหลว playbook จะดำเนินการต่อไปหากคุณระบุคำสั่ง forget_errors=true ที่ด้านล่างของกิจกรรม แม้จะใส่ใจเกี่ยวกับการทำงานให้สำเร็จหรือล้มเหลว แต่ก็ยังดำเนินกิจกรรมที่ตามมา หากกิจกรรมไม่ประสบผลสำเร็จ จะไปยังกิจกรรมถัดไป หากกิจกรรมสำเร็จ ก็จะเสร็จสิ้นกระบวนการหลังจากนั้น

2. ใช้โหมดตรวจสอบใน Ansible



ใช้ตัวแปรพิเศษบูลีน ซึ่งเป็นโหมดการตรวจสอบ Ansible ซึ่งถูกกำหนดให้เป็น True เมื่อ Ansible อยู่ในวิธีการตรวจสอบเพื่อข้ามงานหรือเพิกเฉยต่อความล้มเหลวของงาน เมื่อใดก็ตามที่ใช้เวอร์ชันวิธีการตรวจสอบของ Ansible

3. การใช้คำสั่ง Failed=When ใน Ansible Playbook

ใน Ansible เรายังสามารถใช้ Failed_when conditional เพื่อระบุว่า 'ความล้มเหลว' ใดที่บอกเป็นนัยสำหรับแต่ละกิจกรรม คล้ายกับคำสั่งเงื่อนไข Ansible รายการของเกณฑ์ที่ล้มเหลว_เมื่อจำนวนมากถูกรวมเข้ากับนัย ดังนั้น งานจะล้มเหลวก็ต่อเมื่อตรงตามเงื่อนไขทั้งหมดเท่านั้น

ข้อกำหนดเบื้องต้นในการละเว้นข้อผิดพลาดใน Ansible

เครื่องมือกำหนดค่า Ansible ต้องเป็นไปตามเกณฑ์ที่จำเป็นเพื่อรวมตัวอย่างที่ชัดเจน:

  • เซิร์ฟเวอร์หลัก Ansible หรือเราสามารถพูดได้ว่าจำเป็นต้องมีเซิร์ฟเวอร์ควบคุม เพื่อให้เราสามารถกำหนดค่าคำสั่งบนอุปกรณ์เป้าหมายได้
  • เราจำเป็นต้องมีโฮสต์ในพื้นที่เพื่อให้เราสามารถติดต่อแต่ละโฮสต์เพื่อใช้วิธีต่างๆ ในการเพิกเฉยต่อข้อผิดพลาดในซอฟต์แวร์ Ansible เราใช้โลคัลโฮสต์ในกรณีนี้เป็นเซิร์ฟเวอร์ระยะไกลเป้าหมายในช่วงระยะเวลาของกิจกรรม
  • เราเขียน playbooks เรียกใช้คำสั่ง Ansible ละเว้นข้อผิดพลาด และใช้อุปกรณ์ควบคุม ansible เพื่อติดตามผลลัพธ์บนโฮสต์ที่อยู่ห่างไกล

เพื่อช่วยให้ผู้เรียนเข้าใจหลักการของการใช้การละเว้นข้อผิดพลาดในคู่มือ Ansible ลองใช้ตัวอย่างต่อไปนี้:

ตัวอย่าง: การใช้คำสั่ง Ignore_Errors=True

นี่คือตัวอย่างที่ง่ายที่สุดที่ใช้ Ansible สำหรับการใช้งาน โดยเราได้รวมงานต่างๆ ไว้ใน Playbook และดำเนินการงานโดยใช้คำสั่งละเว้นข้อผิดพลาด ในการทำเช่นนี้ ขั้นแรกเราต้องเขียนโค้ดต่อไปนี้ในเทอร์มินัล Ansible:

[ ราก @ ต้นแบบ ansible ] # นาโนละเลย_errors.yml

หลังจากสร้างและเปิด playbook ของignore_errors.yml แล้ว ตอนนี้เราจะเริ่มป้อนคำสั่งใน playbook ขั้นแรก เราใช้ตัวเลือก 'โฮสต์' โดยส่งโฮสต์ที่ให้มาเป็น 'โลคัลโฮสต์' เราป้อนค่า 'เท็จ' ในอาร์กิวเมนต์ 'รวบรวมข้อเท็จจริง' เพื่อให้เราไม่สามารถรับข้อมูลเพิ่มเติมเกี่ยวกับโฮสต์ในพื้นที่เมื่อเราเรียกใช้ playbook

หลังจากนั้น เราจะเริ่มแสดงรายการงานแต่ละรายการที่เราต้องการทำให้เสร็จภายใต้ตัวเลือก 'งาน' ในงานแรก เราแสดงเอกสารที่ไม่มีอยู่ในไดเร็กทอรี Ansible ขั้นแรก เราส่งชื่องานที่เราต้องการนำไปใช้ จากนั้น เราใช้ตัวเลือกคำสั่งและจัดเก็บเอกสารข้อความที่ไม่มีอยู่จริง และใช้ “ls” เพื่อให้เราสามารถดำเนินการคำสั่งในงานแรก หลังจากงานแรก เราใช้คำสั่ง forget_errors=true เพื่อที่ว่าหากงานที่อยู่เหนือคำสั่งการละเว้นมีความล้มเหลว ก็จะละเว้นงานนั้นและย้ายไปยังงานถัดไปและดำเนินการ

เราแสดงรายการงานอื่นที่ใช้ หากงานแรกล้มเหลว เครื่องมือ Ansible จะต้องดำเนินการงานถัดไป จากนั้น เราใช้พารามิเตอร์ debug เพื่อเรียกใช้งานใน playbook

- โฮสต์: localhost
Gather_facts: เท็จ
งาน:
- ชื่อ: รายการที่ไม่มีอยู่จริง ไฟล์
สั่งการ: ไม่มีอยู่จริง.txt
ละเว้นข้อผิดพลาด: จริง

- ชื่อ: ดำเนินการต่อ งานหลังจากล้มเหลว
แก้ปัญหา:
ข้อความ: 'ทำงานต่อไปหลังจากล้มเหลว'

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

[ ราก @ ต้นแบบ ansible ] # ansible-playbook forget_errors.yml

หลังจากรันคำสั่งดังกล่าวแล้ว เราจะได้ผลลัพธ์ดังต่อไปนี้ อย่างที่คุณเห็น งานแรกที่แสดงรายการไฟล์ที่ไม่มีอยู่แสดงว่าล้มเหลว แต่งานที่สองดำเนินการสำเร็จเพราะเราเพิกเฉยต่องานแรกโดยใช้การignore_error=trueใน playbook

บทสรุป

เราได้เรียนรู้ความหมายของข้อผิดพลาดในการเพิกเฉยใน Ansible เราได้พูดคุยกันถึงวิธีการทำงานใน Ansible playbook เรายังกล่าวถึงวิธีต่างๆ ในการเพิกเฉยต่อข้อผิดพลาดใน Ansible ขณะดำเนินการ เราใช้ตัวอย่างเพื่อให้ทุกแนวคิดชัดเจนสำหรับผู้ใช้