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

การใช้เวิร์กสเปซสำหรับสภาพแวดล้อม

ศึกษาเวิร์กสเปซของ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. บทนำสู่โมดูล Terraform
  2. การสร้างโมดูลที่นำกลับมาใช้ใหม่ได้
  3. การใช้เวิร์กสเปซสำหรับสภาพแวดล้อม
  4. การเผยแพร่โมดูลไปยังรีจิสทรี
← กลับไปที่ DevOps Bootcamp