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

คืนค่า JSON และรองรับ changed

สื่อสารตามโพรโทคอลผลลัพธ์ของโมดูล

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

โมดูลสื่อสารด้วย JSON

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

ออกจากการทำงานด้วย exit_json

เรียกใช้ module.exit_json เมื่อทำงานสำเร็จ คำสั่งนี้จะแสดงผลลัพธ์เป็น JSON และจบการทำงานของโมดูลอย่างเรียบร้อยด้วยรหัสการออกจากโปรแกรมที่ถูกต้อง

module.exit_json(changed=True, name='web')

คีย์ changed สำคัญ

รายงานค่า changed ตามความเป็นจริงเสมอ ค่านี้บอก Ansible ว่าคุณได้เปลี่ยนแปลงระบบหรือไม่ และกำหนดว่าผลลัพธ์จะแสดงบรรทัด ok หรือ changed

module.exit_json(changed=False)

ตรวจสอบสถานะก่อนเปลี่ยนแปลง

เพื่อให้รายงานค่า changed ได้ถูกต้อง ให้ตรวจสอบสถานะปัจจุบันก่อน หากสถานะตรงกับเป้าหมายอยู่แล้ว ให้กำหนด changed=False และไม่ต้องทำอะไร

if current == desired:
    module.exit_json(changed=False)

ส่งคืนข้อมูลเพิ่มเติม

เพิ่มคีย์ใดก็ได้ลงใน exit_json แล้วคีย์เหล่านั้นจะปรากฏในผลลัพธ์ของงาน ผู้ใช้สามารถบันทึกและนำข้อมูลดังกล่าวกลับมาใช้ภายหลังได้

module.exit_json(changed=True, user_id=42)

แจ้งข้อผิดพลาดด้วย fail_json

เมื่อเกิดข้อผิดพลาด ให้เรียกใช้ module.fail_json พร้อมข้อความที่ชัดเจน Ansible จะทำเครื่องหมายว่างานล้มเหลวและแสดงข้อความของคุณ

module.fail_json(msg='API request timed out')

อย่าแค่แสดงผล

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

เรียกออกจากการทำงานเพียงครั้งเดียว

โมดูลแต่ละตัวต้องจบด้วย exit_json หรือ fail_json เพียงครั้งเดียว ทั้งสองคำสั่งจะเรียกใช้ SystemExit ดังนั้นโค้ดหลังจากนั้นจะไม่ทำงาน

ข้อความที่มีประโยชน์ช่วยได้

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

module.exit_json(changed=True, msg='Created user web')

ให้พฤติกรรมเหมือนโมดูลในตัว

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

ผลลัพธ์เป็นตัวขับเคลื่อนทุกอย่าง

ตัวจัดการ เงื่อนไข และตัวแปรที่ลงทะเบียนไว้ต่างอ่านข้อมูล JSON ของคุณ การกำหนดค่า changed ให้ถูกต้องทำให้โมดูลของคุณเป็นพลเมืองที่ดีของ Ansible

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

ลองคิดดูว่าโมดูลของคุณควรรายงานอย่างไรเมื่อไม่มีสิ่งใดถูกแก้ไข

ทบทวน

จบการทำงานด้วย exit_json เมื่อสำเร็จ หรือใช้ fail_json เมื่อเกิดข้อผิดพลาด รายงานค่า changed ตามความเป็นจริง และอย่าแสดงเอาต์พุตดิบ นี่คือโพรโทคอลผลลัพธ์ของโมดูล 📦

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

บทเรียน “คืนค่า JSON และรองรับ changed” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “คืนค่า JSON และรองรับ changed”

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

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

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

บทเรียน “คืนค่า JSON และรองรับ changed” ใช้เวลานานแค่ไหน

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

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

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

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

  1. เมื่อใดควรสร้างโมดูลแบบกำหนดเอง
  2. AnsibleModule และข้อกำหนดอาร์กิวเมนต์
  3. คืนค่า JSON และรองรับ changed
  4. รองรับโหมดตรวจสอบในโมดูลของคุณ
← กลับไปที่ Ansible Academy