การใช้เวิร์กสเปซสำหรับสภาพแวดล้อม
ศึกษาเวิร์กสเปซของ Terraform เพื่อจัดการสถานะแยกกันสำหรับสภาพแวดล้อมต่าง ๆ เช่น dev, staging และ prod ภายในการกำหนดค่าเดียวกัน
การใช้เวิร์กสเปซสำหรับสภาพแวดล้อม เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
Terraform เวิร์กสเปซคืออะไร
เวิร์กสเปซของ Terraform ช่วยให้คุณจัดการสถานะหลายชุดที่แยกจากกันสำหรับการกำหนดค่า Terraform เดียวกันได้ ลองนึกภาพว่าเป็นสภาพแวดล้อมแยกกัน เช่น 'dev', 'staging' หรือ 'prod'
นั่นหมายความว่าคุณสามารถใช้ไฟล์ .tf ชุดเดียวเพื่อปรับใช้โครงสร้างพื้นฐานในสถานที่ต่างกันได้โดยไม่ต้องเปลี่ยนโค้ด ทำให้สามารถนำกลับมาใช้ใหม่และคงความสอดคล้องได้
เวิร์กสเปซ 'default'
เมื่อคุณเริ่มต้น Terraform ในไดเรกทอรีเป็นครั้งแรก (โดยใช้ terraform init) ระบบจะใช้เวิร์กสเปซ default โดยอัตโนมัติ
การดำเนินการ terraform apply ครั้งแรกทั้งหมดจะจัดเก็บสถานะไว้ในเวิร์กสเปซ default นี้ เว้นแต่คุณจะสร้างและเลือกเวิร์กสเปซอื่น เวิร์กสเปซนี้จะมีอยู่เสมอ!
การสร้างเวิร์กสเปซใหม่
หากต้องการสร้างสภาพแวดล้อมใหม่ ให้ใช้คำสั่ง terraform workspace new คำสั่งนี้จะสลับบริบทปัจจุบันไปยังเวิร์กสเปซที่สร้างขึ้นใหม่โดยอัตโนมัติด้วย
มาสร้างเวิร์กสเปซ dev กัน:
terraform workspace new devจากนั้น Terraform จะสร้างสถานะแยกต่างหากสำหรับสภาพแวดล้อม dev นี้
การแสดงเวิร์กสเปซที่พร้อมใช้งาน
คุณสามารถดูเวิร์กสเปซทั้งหมดที่พร้อมใช้งานในไดเรกทอรีการกำหนดค่าปัจจุบันได้โดยใช้คำสั่ง terraform workspace list
เวิร์กสเปซที่กำลังใช้งานอยู่จะแสดงด้วยเครื่องหมายดอกจัน (*) เพื่อช่วยให้คุณติดตามสภาพแวดล้อมต่าง ๆ ได้
terraform workspace listการสลับเวิร์กสเปซ
หากต้องการสลับระหว่างเวิร์กสเปซที่มีอยู่ ให้ใช้คำสั่ง terraform workspace select ตามด้วยชื่อเวิร์กสเปซ คำสั่งนี้จะเปลี่ยนสภาพแวดล้อมที่ใช้งานอยู่
มาสลับกลับไปยังเวิร์กสเปซ default กัน:
terraform workspace select defaultการดำเนินการของ Terraform หลังจากนี้จะมุ่งเป้าไปยังสถานะของสภาพแวดล้อม default
การใช้ 'terraform.workspace'
คุณสามารถทำให้การกำหนดค่าปรับเปลี่ยนได้ตามสถานการณ์ โดยอ้างอิงชื่อเวิร์กสเปซปัจจุบันผ่านตัวแปรในตัว terraform.workspace วิธีนี้เหมาะอย่างยิ่งสำหรับการตั้งชื่อทรัพยากรหรือกำหนดแท็กเฉพาะสภาพแวดล้อม
ลองเรียกใช้ตัวอย่างนี้ โดยเรียกใช้ terraform init ก่อน จากนั้น terraform workspace new dev และสุดท้าย terraform apply สังเกตชื่อบักเก็ตและแท็ก
provider "aws" {
region = "us-east-1" # Or your preferred region
}
resource "aws_s3_bucket" "example" {
bucket = "my-unique-bucket-${terraform.workspace}-12345"
acl = "private"
tags = {
Environment = terraform.workspace
ManagedBy = "CoddyKit"
}
}
output "bucket_name" {
description = "Name of the S3 bucket created."
value = aws_s3_bucket.example.bucket
}ไฟล์สถานะที่แยกจากกัน
ประเด็นสำคัญที่สุดของเวิร์กสเปซคือ แต่ละเวิร์กสเปซจะมีไฟล์สถานะแยกจากกันโดยสิ้นเชิง
นั่นหมายความว่า ทรัพยากรที่ปรับใช้ในเวิร์กสเปซ dev จะไม่รบกวนทรัพยากรในเวิร์กสเปซ prod แม้ทรัพยากรเหล่านั้นจะกำหนดไว้ด้วยไฟล์การกำหนดค่าชุดเดียวกันก็ตาม Terraform จัดการไฟล์สถานะเหล่านี้ในไดเรกทอรีที่ซ่อนอยู่ (.terraform/environments) ภายในไดเรกทอรีที่คุณใช้งาน
การลบเวิร์กสเปซ
เมื่อไม่จำเป็นต้องใช้สภาพแวดล้อมใดแล้ว คุณสามารถลบเวิร์กสเปซของสภาพแวดล้อมนั้นได้โดยใช้ terraform workspace delete <name>
- สำคัญ: คุณไม่สามารถลบเวิร์กสเปซที่กำลังใช้งานอยู่ได้
- สำคัญอย่างยิ่ง: โปรดตรวจสอบให้แน่ใจว่าคุณได้ทำลายทรัพยากรทั้งหมดที่เชื่อมโยงกับเวิร์กสเปซนั้นโดยใช้
terraform destroyก่อนลบเวิร์กสเปซ มิฉะนั้นอาจมีทรัพยากรที่ถูกทิ้งค้างอยู่!
terraform workspace select default
terraform workspace delete devเวิร์กสเปซเทียบกับไดเรกทอรีแยกกัน
แม้เวิร์กสเปซจะเหมาะสำหรับความแตกต่างเล็กน้อยของการกำหนดค่าเดียวกัน แต่ก็ไม่ใช่ตัวเลือกที่ดีที่สุดเสมอไป โปรดพิจารณาประเด็นต่อไปนี้:
- เวิร์กสเปซ: เหมาะสำหรับความแตกต่างเล็กน้อยระหว่างสภาพแวดล้อม (เช่น จำนวนทรัพยากรและแท็ก) โดยใช้การออกแบบโครงสร้างพื้นฐานหลักแบบเดียวกัน
- ไดเรกทอรีแยกกัน: เหมาะกว่าสำหรับการออกแบบโครงสร้างพื้นฐานที่แตกต่างกันอย่างมาก หรือเมื่อทีมต่าง ๆ จัดการสภาพแวดล้อมที่แยกจากกันโดยสิ้นเชิง
เลือกแนวทางที่เหมาะสมที่สุดกับความซับซ้อนของโครงการและโครงสร้างทีมของคุณ
ตรวจสอบเวิร์กสเปซ
คุณได้เรียนรู้เกี่ยวกับเวิร์กสเปซของ Terraform แล้ว มาทดสอบความเข้าใจกัน
สรุป: เวิร์กสเปซสำหรับสภาพแวดล้อม
ทำได้ดีมาก! คุณได้สำรวจเวิร์กสเปซของ Terraform ซึ่งเป็นความสามารถอันทรงพลังสำหรับจัดการหลายสภาพแวดล้อมจากการกำหนดค่าเดียว โปรดจำประเด็นสำคัญต่อไปนี้:
- เวิร์กสเปซมีไฟล์สถานะที่แยกจากกันสำหรับสภาพแวดล้อมต่าง ๆ (เช่น dev และ prod)
- ใช้
terraform workspace new,listและselectเพื่อจัดการเวิร์กสเปซ - ตัวแปร
terraform.workspaceช่วยให้กำหนดค่าแบบไดนามิกและเฉพาะสภาพแวดล้อมได้ - ทำลายทรัพยากรทุกครั้งก่อนลบเวิร์กสเปซ เพื่อหลีกเลี่ยงโครงสร้างพื้นฐานที่ถูกทิ้งค้าง
วิธีนี้ช่วยให้การปรับใช้โครงสร้างพื้นฐานมีความยืดหยุ่นและเป็นระเบียบ!
คำถามที่พบบ่อย
บทเรียน “การใช้เวิร์กสเปซสำหรับสภาพแวดล้อม” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การใช้เวิร์กสเปซสำหรับสภาพแวดล้อม” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การใช้เวิร์กสเปซสำหรับสภาพแวดล้อม”
ศึกษาเวิร์กสเปซของ Terraform เพื่อจัดการสถานะแยกกันสำหรับสภาพแวดล้อมต่าง ๆ เช่น dev, staging และ prod ภายในการกำหนดค่าเดียวกัน คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การใช้เวิร์กสเปซสำหรับสภาพแวดล้อม” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- บทนำสู่โมดูล Terraform
- การสร้างโมดูลที่นำกลับมาใช้ใหม่ได้
- การใช้เวิร์กสเปซสำหรับสภาพแวดล้อม
- การเผยแพร่โมดูลไปยังรีจิสทรี