การจัดการสถานะคลาดเคลื่อนและการทำให้สอดคล้อง
ตรวจจับ วินิจฉัย และทำให้ความคลาดเคลื่อนสอดคล้องกัน ซึ่งเป็นช่องว่างระหว่างสถานะ Terraform กับโครงสร้างพื้นฐานจริง ก่อนทำให้ระบบหยุดให้บริการหรือเกิดการเปลี่ยนแปลงที่ไม่คาดคิด
การจัดการสถานะคลาดเคลื่อนและการทำให้สอดคล้อง เป็นบทเรียน Terraform Infrastructure as Code ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Terraform Infrastructure as Code และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Terraform Infrastructure as Code มีบทเรียนทั้งหมด 4 บทเรียน
การเปลี่ยนแปลงนอกแผนคืออะไร
การเปลี่ยนแปลงนอกแผนเกิดขึ้นเมื่อโครงสร้างพื้นฐานจริงเปลี่ยนแปลงนอก Terraform เช่น วิศวกรปรับการตั้งค่าในคอนโซล หรือเครื่องมืออื่นแก้ไขทรัพยากร ทำให้สถานะกับความเป็นจริงไม่ตรงกัน และการ apply ครั้งถัดไปอาจย้อนกลับหรือเขียนทับการเปลี่ยนแปลงเหล่านั้นโดยไม่คาดคิด
ตรวจจับการเปลี่ยนแปลงนอกแผนด้วย plan
terraform plan แบบปกติจะรีเฟรชสถานะและแสดงความแตกต่าง หากทรัพยากรเกิดการเปลี่ยนแปลงนอกแผน แผนจะแจ้งการเปลี่ยนแปลงที่คุณไม่ได้ทำในโค้ด
terraform planแผนสำหรับรีเฟรชเท่านั้น
หากต้องการดูการเปลี่ยนแปลงนอกแผนโดยไม่เสนอการเปลี่ยนแปลงการกำหนดค่า ให้ใช้แผนแบบรีเฟรชเท่านั้น แผนนี้จะอัปเดตสถานะให้ตรงกับความเป็นจริงและแสดงสิ่งที่แตกต่างกัน
terraform plan -refresh-onlyการอ่านรายงานการเปลี่ยนแปลงนอกแผน
Terraform จะทำเครื่องหมายแอตทริบิวต์ที่เปลี่ยนแปลงนอกแผนพร้อมระบุการเปลี่ยนแปลงที่ตรวจพบ เครื่องหมายทิลดาบ่งบอกการเปลี่ยนแปลงภายในทรัพยากรเดิม ส่วนคู่เครื่องหมายลบ/บวกบ่งบอกว่าค่าถูกเพิ่มหรือลบนอก Terraform
# aws_instance.web has changed
~ instance_type = "t3.micro" -> "t3.small"สองวิธีในการปรับให้สอดคล้อง
เมื่อพบการเปลี่ยนแปลงนอกแผน คุณต้องเลือกแนวทาง:
- ยอมรับความเป็นจริง — อัปเดตโค้ดให้ตรงกับสถานะใหม่
- กู้คืนตามโค้ด — ใช้ apply เพื่อปรับโครงสร้างพื้นฐานกลับไปตามที่การกำหนดค่าระบุ
ยอมรับการเปลี่ยนแปลงนอกแผนเข้าสู่สถานะ
หากการเปลี่ยนแปลงด้วยตนเองเป็นสิ่งที่ตั้งใจไว้ ให้เรียกใช้ apply -refresh-only เพื่อบันทึกความเป็นจริงลงในสถานะ จากนั้นอัปเดตโค้ดให้ตรงกัน เพื่อให้แผนในอนาคตไม่มีการเปลี่ยนแปลงที่ไม่คาดคิด
terraform apply -refresh-onlyย้อนกลับการเปลี่ยนแปลงนอกแผน
หากการเปลี่ยนแปลงไม่ได้รับอนุญาต การเรียกใช้ terraform apply ตามปกติจะปรับโครงสร้างพื้นฐานกลับไปตามการกำหนดค่าที่ประกาศไว้ และยกเลิกการแก้ไขด้วยตนเอง
terraform applyกำหนดเป้าหมายทรัพยากรเดียว
สำหรับการแก้ไขเฉพาะจุด -target จะจำกัดการดำเนินการไว้ที่ทรัพยากรเดียว ควรใช้เท่าที่จำเป็น เพราะอาจบดบังการเปลี่ยนแปลงนอกแผนในส่วนอื่น
terraform apply -target=aws_instance.webป้องกันการเปลี่ยนแปลงนอกแผนที่ไม่ใช่ปัญหา
แอตทริบิวต์บางรายการได้รับการจัดการโดย AWS หรือเครื่องมืออื่น ใช้ ignore_changes เพื่อให้ Terraform หยุดพยายามควบคุมแอตทริบิวต์เหล่านั้น
resource "aws_instance" "web" {
lifecycle {
ignore_changes = [tags["LastScanned"]]
}
}ตรวจจับการเปลี่ยนแปลงนอกแผนอย่างต่อเนื่อง
ตรวจจับการเปลี่ยนแปลงนอกแผนตั้งแต่เนิ่น ๆ ด้วยการเรียกใช้แผนแบบรีเฟรชเท่านั้นตามกำหนดเวลาใน CI Terraform Cloud มีการตรวจจับการเปลี่ยนแปลงนอกแผนในตัว ซึ่งจะแจ้งเตือนเมื่อสถานะกับความเป็นจริงไม่ตรงกัน
on:
schedule:
- cron: "0 6 * * *"วัฒนธรรมสำคัญกว่าเครื่องมือ
วิธีป้องกันการเปลี่ยนแปลงนอกแผนที่ดีที่สุดคือกระบวนการ: จำกัดสิทธิ์เขียนในคอนโซล ส่งการเปลี่ยนแปลงทั้งหมดผ่าน Terraform และถือว่าการแก้ไขด้วยตนเองเป็นเหตุการณ์ผิดปกติ เครื่องมือช่วยตรวจจับการเปลี่ยนแปลงนอกแผน แต่ความมีวินัยช่วยหลีกเลี่ยงการเกิดขึ้น
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความรู้เกี่ยวกับการจัดการการเปลี่ยนแปลงนอกแผนของคุณ
ทบทวน: รักษาความถูกต้องของสถานะ
ตอนนี้คุณจัดการการเปลี่ยนแปลงนอกแผนได้แล้ว:
- ตรวจจับด้วย
planหรือplan -refresh-only - ยอมรับด้วย
apply -refresh-onlyแล้วอัปเดตโค้ด - ย้อนกลับด้วย
applyตามปกติ - ใช้
ignore_changesและการตรวจสอบตามกำหนดเวลาเพื่อรับมือได้ล่วงหน้า
คำถามที่พบบ่อย
บทเรียน “การจัดการสถานะคลาดเคลื่อนและการทำให้สอดคล้อง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดการสถานะคลาดเคลื่อนและการทำให้สอดคล้อง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Terraform Infrastructure as Code ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Terraform Infrastructure as Code มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจัดการสถานะคลาดเคลื่อนและการทำให้สอดคล้อง”
ตรวจจับ วินิจฉัย และทำให้ความคลาดเคลื่อนสอดคล้องกัน ซึ่งเป็นช่องว่างระหว่างสถานะ Terraform กับโครงสร้างพื้นฐานจริง ก่อนทำให้ระบบหยุดให้บริการหรือเกิดการเปลี่ยนแปลงที่ไม่คาดคิด คุณปฏิบัติ Terraform Infrastructure as Code ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Terraform Infrastructure as Code หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Terraform Infrastructure as Code บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การจัดการสถานะคลาดเคลื่อนและการทำให้สอดคล้อง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Terraform Infrastructure as Code นี้ได้ไหม
ได้ บทเรียน Terraform Infrastructure as Code ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การแก้ไขข้อผิดพลาดในการกำหนดค่า Terraform
- กลยุทธ์การเพิ่มประสิทธิภาพ
- การกู้คืนจากภัยพิบัติด้วย Terraform
- การจัดการสถานะคลาดเคลื่อนและการทำให้สอดคล้อง