วิธีตั้งค่า Pulumi พร้อม GitHub Actions เพื่อสร้าง Infrastructure‑as‑Code อัตโนมัติบนคลาวด์หลายแห่ง

ที่มาภาพ: Unknown Source

วิธีตั้งค่า Pulumi พร้อม GitHub Actions เพื่อสร้าง Infrastructure‑as‑Code อัตโนมัติบนคลาวด์หลายแห่ง

⚡ สรุป 30 วิ

การใช้ Pulumi ร่วมกับ GitHub Actions ทำให้คุณสามารถสร้าง Infrastructure‑as‑Code (IaC) แบบอัตโนมัติบนคลาวด์หลายแห่งได้ในขั้นตอนเดียว บทความนี้จะสอนตั้งค่าอย่างเป็นระบบ ตั้งแต่เตรียมเครื่องมือจนถึงการปร…

ภาพรวม — Overview

การใช้ Pulumi ร่วมกับ GitHub Actions ทำให้คุณสามารถสร้าง Infrastructure‑as‑Code (IaC) แบบอัตโนมัติบนคลาวด์หลายแห่งได้ในขั้นตอนเดียว บทความนี้จะสอนตั้งค่าอย่างเป็นระบบ ตั้งแต่เตรียมเครื่องมือจนถึงการปรับใช้จริง

สิ่งที่ต้องมีล่วงหน้า — Prerequisites

ก่อนเริ่มคุณควรตรวจสอบว่ามีสิ่งต่อไปนี้พร้อมใช้งานแล้วหรือไม่

  • บัญชีคลาวด์ เช่น AWS, Azure, GCP ที่ได้รับสิทธิ์สร้างทรัพยากร
  • Pulumi CLI เวอร์ชันล่าสุดติดตั้งบนเครื่องพัฒนา
  • GitHub Repository ที่จะใช้เก็บโค้ด IaC และ workflow
**Tip: หากต้องการทำงานหลายคลาวด์พร้อมกัน ให้สร้าง Service‑Principal หรือ IAM User แยกตามแต่ละผู้ให้บริการ แล้วบันทึกค่า Credential ไว้ใน Secrets ของ GitHub

สร้าง Repository บน GitHub — Repository Setup

ขั้นแรกให้เตรียมพื้นที่เก็บโค้ดและตั้งค่าความปลอดภัยพื้นฐาน

  • เปิด Repository ใหม่บน GitHub (Public/Private ตามความต้องการ)
  • เพิ่มไฟล์ `.gitignore` ที่รวม `node_modules/`, `.pulumi/`, `*.bak` ฯลฯ
  • สร้าง GitHub Secrets สำหรับแต่ละคลาวด์ เช่น `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AZURE_CLIENT_ID` เป็นต้น

เขียนโปรแกรม Pulumi — Write Pulumi Program

Pulumi รองรับหลายภาษา เราจะใช้ TypeScript เป็นตัวอย่าง

  • สร้างโฟลเดอร์ `infra/` แล้วรัน `pulumi new aws-typescript` หรือ `pulumi new azure-typescript` ตามต้องการ
  • แก้ไขไฟล์ `index.ts` เพื่อกำหนดทรัพยากร เช่น VPC, Storage Account, หรือ Cloud SQL
  • ใช้ Stack Config (`pulumi config set`) เก็บค่าที่แตกต่างระหว่างคลาวด์

ตั้งค่า GitHub Actions — Configure GitHub Actions

สร้างไฟล์ workflow ที่จะทำงานเมื่อมีการ push ไปยัง branch `main`

```yaml name: Pulumi Deploy

on: push: branches:

  • main

jobs: deploy: runs-on: ubuntu-latest strategy: matrix: cloud: [aws, azure, gcp]

steps:

  • uses: actions/checkout@v3
  • name: Setup Node

uses: actions/setup-node@v3 with: node-version: '20'

  • name: Install Pulumi

run: curl -fsSL https://get.pulumi.com | sh

  • name: Set Cloud Secrets

env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} run: | if [ "${{ matrix.cloud }}" = "aws" ]; then export PULUMI_CONFIG_PASSPHRASE=your-passphrase elif [ "${{ matrix.cloud }}" = "azure" ]; then export ARM_CLIENT_ID=$AZURE_CLIENT_ID fi

  • name: Pulumi Preview & Up

run: | pulumi stack select dev-${{ matrix.cloud }} pulumi preview pulumi up --yes ```

  • matrix.cloud ทำให้ workflow รันแยกตามผู้ให้บริการแต่ละตัว
  • ใช้ `pulumi stack select` เลือกสแตกที่ตั้งค่าไว้เฉพาะคลาวด์นั้น

ปรับใช้บนหลายคลาวด์พร้อมกัน — Deploy to Multiple Clouds

เมื่อ Workflow ทำงานครบทุก matrix คุณจะได้ทรัพยากรที่สร้างในแต่ละผู้ให้บริการโดยอัตโนมัติ

  • ตรวจสอบผลลัพธ์จาก Action log เพื่อแน่ใจว่าไม่มีข้อผิดพลาด
  • ใช้ `pulumi stack output` ดึงค่า IP, URL หรือ Credential ที่จำเป็นต่อการเชื่อมต่อระหว่างคลาวด์

เปรียบเทียบฟีเจอร์สำคัญของผู้ให้บริการ — Comparison Table

ฟีเจอร์AWSAzureGCP
การจัดการ SecretsParameter Store / SSMKey VaultSecret Manager
การสร้าง VPC/NetworkVPC + SubnetVirtual Network + SubnetVPC + Subnetwork
รองรับ Pulumi Stackใช่ (aws)ใช่ (azure)ใช่ (gcp)

เคล็ดลับและข้อควรระวัง — Tips & Common Issues

  • จัดการ State อย่างปลอดภัย – ใช้ backend ที่เป็น Remote เช่น S3, Azure Blob หรือ GCS แทนไฟล์โลคัล
  • หลีกเลี่ยงการเปิดเผย Credential – ตรวจสอบว่า Secrets ไม่ถูกเขียนลงใน Log (ใช้ `echo ::add-mask::` หากจำเป็น)
  • ทำ Preview ก่อน Up – Pulumi preview ช่วยให้เห็นแผนการเปลี่ยนแปลงก่อนดำเนินจริง ลดความเสี่ยง
**Tip: ถ้า Workflow ล้มเหลวที่ขั้นตอน `pulumi up` ให้ใช้ `pulumi refresh` เพื่อตรวจสอบสถานะจริงของคลาวด์และทำการแก้ไขในโค้ดต่อไป

สรุป — Summary

บทความนี้อธิบายวิธีตั้งค่า Pulumi ร่วมกับ GitHub Actions เพื่อสร้าง IaC บน AWS, Azure, และ GCP อย่างอัตโนมัติ

  • ตั้งค่า GitHub Secrets ให้ครบตามผู้ให้บริการ
  • เขียนโค้ด Pulumi ที่แยกสแตกตามคลาวด์ (`dev-aws`, `dev-azure`, ฯลฯ)
  • ใช้ matrix strategy ใน GitHub Actions เพื่อรัน Deploy บนหลายคลาวด์พร้อมกัน

ด้วยขั้นตอนเหล่านี้ คุณจะมีระบบ CI/CD สำหรับโครงสร้างพื้นฐานที่ทำงานสม่ำเสมอ ลดการทำซ้ำและเพิ่มความเร็วในการปรับใช้บนคลาวด์หลายแห่งอย่างมั่นคง.

แชร์บทความนี้:

ชอบบทความแบบนี้?

สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม

แหล่งข่าวต้นฉบับ

ชื่อต้นฉบับ
วิธีตั้งค่า Pulumi พร้อม GitHub Actions เพื่อสร้าง Infrastructure‑as‑Code อัตโนมัติบนคลาวด์หลายแห่ง
ผู้เขียน
กองบรรณาธิการ Thai Tech News
แหล่ง
บทความต้นฉบับ Thai Tech News · ช่วยร่างด้วย AI, เรียบเรียง/ตรวจสอบโดยกองบรรณาธิการ
วันที่เผยแพร่
20 กรกฎาคม 2569 เวลา 19:50

Related

บทความที่เกี่ยวข้อง

วิธีตั้งค่า ZeroTier สร้างเครือข่ายส่วนตัวแบบปลอดภัยบนหลายแพลตฟอร์มGrowth
20 กรกฎาคม 2569 เวลา 18:30

วิธีตั้งค่า ZeroTier สร้างเครือข่ายส่วนตัวแบบปลอดภัยบนหลายแพลตฟอร์ม

ZeroTier เป็นซอฟต์แวร์เครือข่ายเสมือน (SD‑WAN) ที่ทำให้คุณสร้าง **เครือข่ายส่วนตัวแบบปลอดภัย** ได้โดยไม่ต้องตั้งค่า VPN แบบดั้งเดิม บนหลายแพลตฟอร์ม การเชื่อมต่ออุปกรณ์ต่าง ๆ จะเหมือนอยู่ใน LAN เดียวกั…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ6 นาที
วิธีตั้งค่า VS Code Remote‑SSH บน macOS เพื่อพัฒนาโค้ดบนเซิร์ฟเวอร์ระยะไกลอย่างปลอดภัยGrowth
20 กรกฎาคม 2569 เวลา 12:30

วิธีตั้งค่า VS Code Remote‑SSH บน macOS เพื่อพัฒนาโค้ดบนเซิร์ฟเวอร์ระยะไกลอย่างปลอดภัย

การพัฒนาโค้ดบนเซิร์ฟเวอร์ระยะไกลโดยใช้ VS Code Remote‑SSH ทำให้คุณสามารถเขียน แก้ไข และดีบักได้เหมือนทำงานบนเครื่อง local แต่ทุกอย่างถูกประมวลผลบนเครื่องปลายทาง การตั้งค่าที่ถูกต้องบน macOS จะช่วยให้ก…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ8 นาที
วิธีตั้งค่า GitHub Actions เพื่อ Deploy แอป Next.js ไปยัง Vercel อย่างปลอดภัยGrowth
20 กรกฎาคม 2569 เวลา 11:00

วิธีตั้งค่า GitHub Actions เพื่อ Deploy แอป Next.js ไปยัง Vercel อย่างปลอดภัย

การใช้ **GitHub Actions** ร่วมกับ **Vercel** ช่วยให้เราสามารถ Deploy แอป Next.js อัตโนมัติทุกครั้งที่มีการอัปเดตโค้ดบน `main` หรือ `production` branch ได้อย่างรวดเร็วและปลอดภัย บทความนี้จะแนะนำขั้นตอน…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ7 นาที
วิธีตั้งค่าและใช้งาน Cloudflare Workers KV เพื่อจัดการข้อมูลคีย์‑แวลูบน EdgeGrowth
19 กรกฎาคม 2569 เวลา 19:30

วิธีตั้งค่าและใช้งาน Cloudflare Workers KV เพื่อจัดการข้อมูลคีย์‑แวลูบน Edge

การจัดเก็บข้อมูลคีย์‑แวลูบน Edge ทำให้แอปพลิเคชันตอบสนองเร็วขึ้นและลดภาระที่เซิร์ฟเวอร์หลัก Cloudflare Workers KV (Key‑Value) เป็นโซลูชั่นที่ง่ายต่อการตั้งค่าและใช้งาน บทความนี้จะแสดงขั้นตอนตั้งค่าพร้…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ7 นาที
คัดลอกลิงก์แล้ว!