0Pricing
DevOps Bootcamp · บทเรียน

สถานะที่ต้องการ ไม่ใช่สคริปต์ทีละขั้นตอน

เหตุใดแนวทางเชิงประกาศจึงดีกว่าแนวทางเชิงคำสั่ง

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

อธิบายจุดสิ้นสุด ไม่ใช่ขั้นตอน

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

แนวทางเชิงคำสั่ง

สคริปต์เชิงคำสั่งจะแสดงคำสั่งที่แน่นอนตามลำดับ โดยตั้งสมมติฐานเกี่ยวกับสถานะเริ่มต้น จึงทำงานผิดพลาดหากโฮสต์ถูกตั้งค่าไว้บางส่วนแล้ว

apt-get update
apt-get install -y nginx
systemctl start nginx

แนวทางเชิงประกาศ

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

ansible.builtin.package:
  name: nginx
  state: present

state ระบุเป้าหมาย

คีย์ state คือจุดที่คุณประกาศเจตนา ค่า present, started หรือ absent ต่างระบุสถานะสุดท้ายที่ต้องการ ไม่ใช่การกระทำที่ต้องดำเนินการ

ansible.builtin.service:
  name: nginx
  state: started

Ansible เปรียบเทียบก่อน

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

นี่คือการลู่เข้าสู่สถานะเดียวกัน

การทำงานแต่ละครั้งจะขยับโฮสต์เข้าใกล้สถานะที่คุณประกาศไว้ นี่คือการลู่เข้าสู่สถานะเดียวกัน: ไม่ว่าจะเริ่มจากจุดใด โฮสต์ก็จะลงเอยที่จุดเดียวกัน

ลำดับสำคัญน้อยลง

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

เรียกใช้ซ้ำได้อย่างปลอดภัย

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

มีสิ่งที่ต้องจำให้น้อยลง

คุณไม่ต้องเขียนการตรวจสอบว่า “ถ้าติดตั้งแล้วให้ข้าม” ด้วยตนเองอีกต่อไป โมดูลจะจัดการตรรกะนั้นเอง ทำให้เพลย์บุ๊กของคุณสั้นและอ่านง่าย

เพลย์บุ๊กคือแหล่งอ้างอิงหลัก

เพลย์บุ๊กแบบประกาศสถานะอ่านได้เหมือนเอกสารของเซิร์ฟเวอร์ที่ต้องการ: ควรมีแพ็กเกจ บริการ และไฟล์ใดอยู่บนเซิร์ฟเวอร์นั้นบ้าง

- name: Web server desired state
  hosts: web
  tasks:
    - ansible.builtin.package:
        name: nginx
        state: present

บางงานยังคงเป็นงานเชิงคำสั่ง

งานคำสั่งดิบและงานเชลล์เป็นงานเชิงคำสั่ง: งานเหล่านี้จะทำงานทุกครั้ง โปรดเลือกใช้โมดูลที่อิงสถานะ เพื่อให้ Ansible ยังคงทำงานแบบประกาศสถานะได้

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

คุณเขียนงานที่ระบุว่า nginx ควรมีอยู่ แล้วเรียกใช้เพลย์บุ๊กกับโฮสต์ที่มี nginx อยู่แล้ว

สรุปทบทวน

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

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

บทเรียน “สถานะที่ต้องการ ไม่ใช่สคริปต์ทีละขั้นตอน” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “สถานะที่ต้องการ ไม่ใช่สคริปต์ทีละขั้นตอน”

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

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

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

บทเรียน “สถานะที่ต้องการ ไม่ใช่สคริปต์ทีละขั้นตอน” ใช้เวลานานแค่ไหน

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

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

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

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

  1. สถานะที่ต้องการ ไม่ใช่สคริปต์ทีละขั้นตอน
  2. การอ่าน changed เทียบกับ ok ในเอาต์พุต
  3. เหตุใด command จึงทำลายการทำงานซ้ำได้ผลเหมือนเดิม
  4. โหมดตรวจสอบ: การทดลองทำงานด้วย --check
← กลับไปที่ DevOps Bootcamp