IaC ด้วย Terraform และ GitHub Actions
ทำความเข้าใจวิธีผสาน Terraform เข้ากับเวิร์กโฟลว์ GitHub Actions เพื่อจัดเตรียมและจัดการโครงสร้างพื้นฐาน
IaC ด้วย Terraform และ GitHub Actions เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
โครงสร้างพื้นฐานเป็นโค้ด (IaC)
ยินดีต้อนรับ! ในบทเรียนนี้ เราจะเจาะลึกเรื่อง โครงสร้างพื้นฐานเป็นโค้ด (IaC) แนวทางนี้หมายถึงการจัดการและจัดเตรียมโครงสร้างพื้นฐานของคุณ เช่น เซิร์ฟเวอร์ ฐานข้อมูล และเครือข่าย โดยใช้โค้ดแทนกระบวนการที่ต้องทำด้วยตนเอง
ลองนึกภาพว่านี่คือการเขียนซอฟต์แวร์สำหรับโครงสร้างพื้นฐานของคุณ แนวทางนี้มีประโยชน์หลายประการ เช่น ความสม่ำเสมอ การทำซ้ำได้ และการควบคุมเวอร์ชันสำหรับการตั้งค่าทั้งหมดของคุณ
ทำความรู้จัก Terraform สำหรับ IaC
หนึ่งในเครื่องมือยอดนิยมสำหรับ IaC คือ Terraform ซึ่งเป็นเครื่องมือโอเพนซอร์สที่พัฒนาโดย HashiCorp
Terraform ช่วยให้คุณกำหนดทรัพยากรโครงสร้างพื้นฐานในไฟล์การกำหนดค่าที่มนุษย์อ่านได้ จากนั้นจะใช้ไฟล์เหล่านี้เพื่อจัดเตรียมและจัดการทรัพยากรข้ามผู้ให้บริการคลาวด์ต่าง ๆ เช่น AWS, Azure, GCP และบริการอื่น ๆ
ไวยากรณ์ HCL ของ Terraform
Terraform ใช้ภาษาเชิงประกาศของตนเองที่เรียกว่า HashiCorp Configuration Language (HCL) โดย HCL ได้รับการออกแบบให้อ่านและเขียนได้ง่ายสำหรับมนุษย์ ทำให้คำจำกัดความโครงสร้างพื้นฐานของคุณชัดเจน
นี่คือตัวอย่างขนาดเล็กของ HCL ที่กำหนด AWS VPC (คลาวด์ส่วนตัวเสมือน)
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
tags = {
Name = "my-vpc"
}
}เวิร์กโฟลว์หลักของ Terraform
Terraform ใช้เวิร์กโฟลว์สามขั้นตอนที่สม่ำเสมอเพื่อจัดการโครงสร้างพื้นฐานของคุณ
terraform init: เริ่มต้นไดเรกทอรีทำงานของคุณและดาวน์โหลดปลั๊กอินผู้ให้บริการที่จำเป็นterraform plan: สร้างแผนการดำเนินการ ซึ่งแสดงการเปลี่ยนแปลงที่ Terraform จะทำกับโครงสร้างพื้นฐานของคุณterraform apply: ดำเนินการตามการเปลี่ยนแปลงที่ระบุไว้ในแผน โดยจัดเตรียมหรือแก้ไขทรัพยากรของคุณ
ทำให้เป็นอัตโนมัติด้วย GitHub Actions
การผสาน Terraform เข้ากับ GitHub Actions ช่วยยกระดับกลยุทธ์ IaC ของคุณอย่างมาก โดยช่วยให้คุณทำให้ขั้นตอนสำคัญในไปป์ไลน์การปรับใช้โครงสร้างพื้นฐานเป็นแบบอัตโนมัติ
เมื่อใช้ GitHub Actions คุณสามารถทำสิ่งต่อไปนี้ได้
- เรียกใช้
terraform planโดยอัตโนมัติสำหรับคำขอรวมโค้ดทุกครั้ง - ทำให้มั่นใจว่าการเปลี่ยนแปลงโครงสร้างพื้นฐานได้รับการตรวจทานและอนุมัติ
- ทำให้
terraform applyเป็นแบบอัตโนมัติสำหรับการปรับใช้ที่ควบคุมได้
ไฟล์เวิร์กโฟลว์ Terraform ของคุณ
เวิร์กโฟลว์ GitHub Actions สำหรับ Terraform จะกำหนดไว้ในไฟล์ YAML ภายในไดเรกทอรี .github/workflows/ ของที่เก็บโค้ด ไฟล์นี้ระบุว่าเวิร์กโฟลว์จะทำงานเมื่อใดและดำเนินการขั้นตอนใดบ้าง
นี่คือโครงสร้างพื้นฐานสำหรับเวิร์กโฟลว์ที่สามารถวางแผนการเปลี่ยนแปลงได้
name: 'Terraform CI'
on:
pull_request:
branches:
- main
jobs:
terraform:
name: 'Terraform'
runs-on: ubuntu-latest
steps:
# Your workflow steps will go here
ตั้งค่า Terraform และขั้นตอนเริ่มต้นระบบ
ก่อนเรียกใช้คำสั่ง Terraform ใด ๆ เวิร์กโฟลว์ของคุณต้องดึงโค้ดออกมา ตั้งค่า Terraform CLI และเริ่มต้นไดเรกทอรีทำงาน
แอ็กชัน hashicorp/setup-terraform ช่วยให้ดำเนินการนี้ได้ง่าย
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: 1.5.x
- name: Terraform Init
run: terraform initขั้นตอนการวางแผนของ Terraform
คำสั่ง terraform plan เป็นขั้นตอนสำคัญในเวิร์กโฟลว์ IaC ทุกประเภท โดยจะทำงานแบบ 'ทดลองดำเนินการ' เพื่อระบุว่าต้องดำเนินการใดบ้างเพื่อให้ได้สถานะที่ต้องการตามที่กำหนดไว้ในไฟล์การกำหนดค่าของคุณ
ขั้นตอนนี้ช่วยให้คุณตรวจทานการเปลี่ยนแปลงที่เสนอไว้ก่อนที่จะมีการแก้ไขสิ่งใดในสภาพแวดล้อมคลาวด์ของคุณจริง
- name: Terraform Plan
run: terraform plan
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}ตรวจสอบอย่างรวดเร็ว: Terraform Plan
การทำความเข้าใจคำสั่งหลักเป็นกุญแจสำคัญในการใช้ Terraform อย่างมีประสิทธิภาพในเวิร์กโฟลว์อัตโนมัติของคุณ
ข้อควรพิจารณาเกี่ยวกับ Terraform Apply
คำสั่ง terraform apply คือขั้นตอนที่ทำให้เกิดการเปลี่ยนแปลงจริง เพราะคำสั่งนี้จะเปลี่ยนแปลงโครงสร้างพื้นฐานของคุณ
ในไปป์ไลน์อัตโนมัติ แนวทางปฏิบัติทั่วไปคือเรียกใช้ terraform apply หลังจากมนุษย์ตรวจทานผลลัพธ์ของ plan แล้วเท่านั้น หรือเรียกใช้เมื่อรวมโค้ดเข้ากับสาขาที่กำหนด เช่น main หรือ production เท่านั้น วิธีนี้ช่วยป้องกันการเปลี่ยนแปลงโครงสร้างพื้นฐานโดยไม่ตั้งใจหรือไม่ได้รับอนุมัติ
สรุป IaC ด้วย Terraform และ Actions
ในบทเรียนนี้ เราได้สำรวจว่า โครงสร้างพื้นฐานเป็นโค้ด (IaC) ช่วยจัดการโครงสร้างพื้นฐานโดยใช้โค้ดได้อย่างไร เราเน้นที่ Terraform ซึ่งเป็นเครื่องมือหลักสำหรับ IaC และเรียนรู้เกี่ยวกับไวยากรณ์ HCL รวมถึงเวิร์กโฟลว์สำคัญอย่าง init, plan, apply
คุณยังได้เห็นว่า GitHub Actions สามารถทำให้ขั้นตอน terraform init และ terraform plan เป็นแบบอัตโนมัติได้อย่างไร ทำให้การปรับใช้โครงสร้างพื้นฐานของคุณปลอดภัย สม่ำเสมอ และผสานรวมเข้ากับไปป์ไลน์ CI/CD ได้อย่างสมบูรณ์
คำถามที่พบบ่อย
บทเรียน “IaC ด้วย Terraform และ GitHub Actions” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “IaC ด้วย Terraform และ GitHub Actions” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “IaC ด้วย Terraform และ GitHub Actions”
ทำความเข้าใจวิธีผสาน Terraform เข้ากับเวิร์กโฟลว์ GitHub Actions เพื่อจัดเตรียมและจัดการโครงสร้างพื้นฐาน คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “IaC ด้วย Terraform และ GitHub Actions” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- IaC ด้วย Terraform และ GitHub Actions
- การจัดการทรัพยากรคลาวด์
- การทำให้การอัปเดตโครงสร้างพื้นฐานเป็นอัตโนมัติ
- การจัดการสถานะ Terraform และแบ็กเอนด์ระยะไกล