رفتن به محتوا
بازگشت به وبلاگ
دواپس

GitHub Actions برای خودکارسازی زیرساخت

ساخت Workflow های GitHub Actions برای زیرساخت: Plan های Terraform روی PR، آزمایش خودکار، استقرار محیط و استراتژی‌های Rollback.

آذر ۱۴۰۴
۱۳ دقیقه مطالعه

مقدمه

GitHub Actions پلتفرم CI/CD است که به شما اجازه می‌دهد workflow ها را مستقیماً در مخزن GitHub خود اتوماتیک کنید. برای مهندسان زیرساخت، می‌توان استقرارهای Terraform، اجرای playbook های Ansible، ساخت image های Docker و اعمال سیاست‌های امنیتی را اتوماتیک کرد.

مثال: استقرار Terraform

YAML
name: Infrastructure Deploy

on:
  push:
    branches: [main]
    paths: ['terraform/**']

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: hashicorp/setup-terraform@v3

      - run: terraform fmt -check -recursive
      - run: terraform init && terraform validate
        working-directory: ./terraform/environments/staging

  deploy:
    needs: validate
    runs-on: ubuntu-latest
    environment: production
    steps:
      - uses: actions/checkout@v4
      - uses: aws-actions/configure-aws-credentials@v4
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
      - run: terraform init && terraform apply -auto-approve
        working-directory: ./terraform/environments/production

ساخت Docker Image

YAML
      - uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: ghcr.io/${{ github.repository }}:${{ github.sha }}
          cache-from: type=gha
          cache-to: type=gha,mode=max

GitHub Actions مدیریت زیرساخت را از فرآیندهای دستی و مستعد خطا به pipeline های قابل ردیابی و تکرارپذیر تبدیل می‌کند.