DevOps Bootcamp · บทเรียน

Terraform ในกระบวนการ CI/CD

ทำความเข้าใจวิธีผนวกคำสั่ง Terraform เข้ากับกระบวนการ CI/CD โดยใช้เครื่องมือยอดนิยม เช่น Jenkins, GitLab CI หรือ GitHub Actions

บทเรียน 1 จาก 411 ขั้นตอน

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

ยินดีต้อนรับสู่ CI/CD และ Terraform

ยินดีต้อนรับ! ในบทเรียนนี้ เราจะเชื่อมพลังของ Terraform เข้ากับกระบวนการ CI/CD แบบผสานรวมและส่งมอบอย่างต่อเนื่อง

CI/CD ช่วยทำให้ขั้นตอนในกระบวนการส่งมอบซอฟต์แวร์เป็นอัตโนมัติ ตั้งแต่การเปลี่ยนแปลงโค้ดไปจนถึงการปรับใช้ เป้าหมายคือทำให้การปรับใช้เร็วขึ้น ปลอดภัยขึ้น และเชื่อถือได้มากขึ้น

เหตุใดจึงต้องทำ Terraform ให้เป็นอัตโนมัติ

การทำ Terraform ให้เป็นอัตโนมัติด้วย CI/CD มีประโยชน์มากมาย:

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

กระบวนการ CI/CD หลักของ Terraform

กระบวนการ Terraform ทั่วไปในกระบวนการ CI/CD ประกอบด้วยคำสั่งสำคัญเหล่านี้:

  • terraform init: เริ่มต้นไดเรกทอรีทำงานและดาวน์โหลดผู้ให้บริการ
  • terraform plan: แสดงการเปลี่ยนแปลงโครงสร้างพื้นฐานที่จะเกิดขึ้นโดยยังไม่นำไปใช้
  • terraform apply: ดำเนินการตามการเปลี่ยนแปลงที่วางแผนไว้เพื่อสร้าง อัปเดต หรือลบทรัพยากร

คำสั่งเหล่านี้จะถูกเรียกใช้โดยระบบ CI/CD ของคุณ ไม่ใช่การเรียกใช้ด้วยตนเอง!

GitHub Actions - พื้นฐาน

GitHub Actions เป็นเครื่องมือ CI/CD ยอดนิยม เวิร์กโฟลว์จะกำหนดไว้ในไฟล์ YAML ภายในไดเรกทอรี .github/workflows/ ของที่เก็บโค้ด

ต่อไปนี้คือโครงสร้างพื้นฐานสำหรับเวิร์กโฟลว์ Terraform:

name: Terraform CI

on:
  push:
    branches:
      - main

jobs:
  terraform:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      # Terraform steps will go here

GHA: การเริ่มต้น Terraform

ขั้นตอนสำคัญแรกคือ terraform init เสมอ คำสั่งนี้เตรียมไดเรกทอรีทำงานโดยดาวน์โหลดปลั๊กอินผู้ให้บริการที่จำเป็นและตั้งค่าแบ็กเอนด์สำหรับจัดการสถานะ

จำเป็นอย่างยิ่งที่จะต้องเรียกใช้คำสั่งนี้ก่อนคำสั่ง Terraform อื่น ๆ ในงานของกระบวนการของคุณ

      - name: Terraform Init
        id: init
        run: terraform init

GHA: การวางแผนการเปลี่ยนแปลง Terraform

หลังจากเริ่มต้นแล้ว เราจะเรียกใช้ terraform plan คำสั่งนี้จะเปรียบเทียบการกำหนดค่า Terraform ปัจจุบันของคุณกับสถานะจริงของโครงสร้างพื้นฐานและไฟล์สถานะระยะไกล

คำสั่งนี้จะสร้างแผนการดำเนินการที่แสดงอย่างชัดเจนว่า Terraform จะทำอะไรบ้าง (เช่น สร้าง อัปเดต ทำลาย) โดยยังไม่เปลี่ยนแปลงสิ่งใดจริง ซึ่งมีความสำคัญอย่างยิ่งต่อการตรวจทาน!

      - name: Terraform Plan
        id: plan
        run: terraform plan -no-color

GHA: การนำการเปลี่ยนแปลงไปใช้ตามเงื่อนไข

คำสั่ง terraform apply จะดำเนินการตามการเปลี่ยนแปลงที่ระบุไว้ในแผน ใน CI/CD ขั้นตอนนี้มักมีเงื่อนไขกำกับเสมอ

ตัวอย่างเช่น อาจเรียกใช้เฉพาะเมื่อมีการผสานการเปลี่ยนแปลงเข้ากับสาขา main หรือหลังจากผ่านขั้นตอนอนุมัติด้วยตนเอง เพื่อให้มีการกำกับดูแลโดยมนุษย์ก่อนการปรับใช้สู่ระบบจริง

      - name: Terraform Apply
        if: github.ref == 'refs/heads/main' && github.event_name == 'push'
        run: terraform apply -auto-approve

นอกเหนือจาก GitHub Actions

แม้เราจะใช้ GitHub Actions เป็นตัวอย่าง แต่แนวคิดหลักของการผสาน Terraform เข้ากับ CI/CD ก็ใช้ได้กับเครื่องมือยอดนิยมอื่น ๆ เช่นกัน:

  • Jenkins: กำหนดขั้นตอนด้วยสคริปต์เชลล์สำหรับคำสั่ง Terraform
  • GitLab CI/CD: ใช้ .gitlab-ci.yml เพื่อระบุงานและสคริปต์
  • Azure DevOps Pipelines: ใช้กระบวนการแบบ YAML พร้อมงานหรือขั้นตอนสคริปต์ Terraform โดยเฉพาะ

คำสั่ง Terraform ยังคงเหมือนเดิม สิ่งที่เปลี่ยนมีเพียงไวยากรณ์สำหรับกำหนดกระบวนการเท่านั้น

แนวทางปฏิบัติที่ดีสำหรับ CI/CD

เมื่อผสาน Terraform เข้ากับ CI/CD ควรพิจารณาแนวทางปฏิบัติที่สำคัญเหล่านี้:

  • สถานะระยะไกล: ใช้แบ็กเอนด์สถานะระยะไกลเสมอ (เช่น S3) เพื่อจัดการสถานะอย่างปลอดภัยและทำงานร่วมกันได้
  • การล็อกสถานะ: ใช้การล็อกสถานะเพื่อป้องกันการดำเนินการ apply พร้อมกัน
  • ตัวแปรสภาพแวดล้อม: ใช้ข้อมูลลับหรือตัวแปรของ CI/CD สำหรับข้อมูลสำคัญ เช่น ข้อมูลรับรองคลาวด์
  • แยกสภาพแวดล้อม: จัดการสภาพแวดล้อมสำหรับการพัฒนา การทดสอบก่อนใช้งานจริง และระบบจริง โดยใช้การกำหนดค่าแยกกันหรือ Terraform Workspaces

ตรวจสอบการผสานรวมกระบวนการ

ข้อใดต่อไปนี้คือประโยชน์สำคัญของการผสาน Terraform เข้ากับกระบวนการ CI/CD

สรุป: Terraform ใน CI/CD

คุณได้เรียนรู้วิธีผสาน Terraform เข้ากับไปป์ไลน์ CI/CD แล้ว! เนื้อหาที่ครอบคลุมมีดังนี้:

  • ประโยชน์สำคัญของการทำให้การนำ Terraform ไปใช้งานเป็นระบบอัตโนมัติ
  • คำสั่งหลักในกระบวนการทำงาน ได้แก่ init, plan และ apply
  • วิธีนำขั้นตอนเหล่านี้ไปใช้งาน โดยใช้ GitHub Actions เป็นตัวอย่าง
  • แนวทางปฏิบัติที่ดีทั่วไปสำหรับการผสาน Terraform เข้ากับ CI/CD อย่างมีประสิทธิภาพ

การทำให้การนำโครงสร้างพื้นฐานไปใช้งานเป็นระบบอัตโนมัติช่วยให้การทำงานมีประสิทธิภาพ เชื่อถือได้ และสอดคล้องกันมากขึ้นทั้งภายในทีมและในสภาพแวดล้อมต่าง ๆ

เริ่มต้นได้ฟรี

เรียนรู้ DevOps Bootcamp ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
142
บทเรียน
568

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

บทเรียน “Terraform ในกระบวนการ CI/CD” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “Terraform ในกระบวนการ CI/CD”

ทำความเข้าใจวิธีผนวกคำสั่ง Terraform เข้ากับกระบวนการ CI/CD โดยใช้เครื่องมือยอดนิยม เช่น Jenkins, GitLab CI หรือ GitHub Actions คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “Terraform ในกระบวนการ CI/CD” ใช้เวลานานแค่ไหน

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

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

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

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

  1. Terraform ในกระบวนการ CI/CD
  2. การทำ `plan` และ `apply` โดยอัตโนมัติ
  3. การจัดการข้อมูลรับรองอย่างปลอดภัย
  4. GitOps และระบบอัตโนมัติสำหรับคำขอดึง
← กลับไปที่ DevOps Bootcamp