0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Pelajaran

Mengotomatiskan Pembaruan Infrastruktur

Terapkan alur kerja untuk merencanakan, menerapkan, dan menghapus perubahan infrastruktur dengan aman melalui langkah peninjauan dan persetujuan.

Mengotomatiskan Pembaruan Infrastruktur adalah pelajaran CI/CD with GitHub Actions & DevOps Pipelines gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar CI/CD with GitHub Actions & DevOps Pipelines, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus CI/CD with GitHub Actions & DevOps Pipelines mencakup 4 pelajaran total.

Mengapa Memperbarui IaC Secara Otomatis?

Mengelola infrastruktur secara manual dapat memakan waktu dan rentan terhadap kesalahan. Infrastruktur sebagai Kode (IaC) membantu dengan mendefinisikan infrastruktur Anda dalam kode.

Mengotomatiskan pembaruan IaC dengan alat seperti GitHub Actions menghadirkan konsistensi dan kecepatan serta mengurangi kesalahan manusia. Cara ini memastikan infrastruktur Anda selalu sesuai dengan definisinya.

Siklus Hidup Alur Kerja IaC

Otomatisasi IaC mengikuti siklus hidup yang jelas: merencanakan, menerapkan, dan terkadang menghancurkan. Setiap langkah dapat diintegrasikan ke dalam alur CI/CD Anda.

  • Merencanakan: Tinjau perubahan yang diusulkan tanpa menerapkannya.
  • Menerapkan: Terapkan perubahan yang telah direncanakan ke infrastruktur Anda.
  • Menghancurkan: Hapus sumber daya infrastruktur (gunakan dengan sangat hati-hati!).

GitHub Actions membantu mengelola langkah-langkah ini dengan aman.

Merencanakan Perubahan dengan Terraform

Sebelum melakukan perubahan apa pun, sangat penting untuk mengetahui dampaknya. Perintah plan milik Terraform membantu Anda melihat pratinjau perubahan infrastruktur.

Perintah ini membandingkan keadaan yang Anda inginkan (dari kode) dengan keadaan infrastruktur saat ini, lalu menunjukkan sumber daya yang akan ditambahkan, diubah, atau dihancurkan.

Cobalah menjalankan perintah berikut dalam proyek Terraform sederhana:

echo "Initializing Terraform..."
terraform init

echo "Running terraform plan..."
terraform plan

Alur Kerja untuk `terraform plan`

Mari buat alur kerja GitHub Actions yang secara otomatis menjalankan terraform plan setiap kali kode didorong ke cabang utama Anda. Dengan demikian, Anda segera mendapatkan umpan balik tentang perubahan yang diusulkan.

Hasil perencanaan kemudian dapat ditinjau langsung di Pull Request atau log alur kerja.

name: 'Terraform Plan'

on:
  pull_request:
    branches:
      - main

jobs:
  terraform:
    name: 'Terraform Plan'
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

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

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

Persetujuan Manual dengan Environments

Menerapkan perubahan infrastruktur secara otomatis dapat berisiko. GitHub Environments menyediakan cara untuk menambahkan langkah persetujuan manual ke alur kerja Anda.

Anda dapat menentukan lingkungan (misalnya, "staging" dan "production") serta menetapkan aturan seperti mewajibkan peninjau tertentu atau waktu tunggu sebelum pekerjaan penerapan dapat dilanjutkan.

Ini menambahkan gerbang peninjauan manusia yang penting sebelum operasi sensitif dilakukan.

Alur Kerja untuk Menerapkan Perubahan

Untuk menerapkan perubahan dengan aman, kita akan mengonfigurasi alur kerja yang menargetkan GitHub Environment yang dilindungi. Pekerjaan tersebut akan berhenti sementara dan menunggu persetujuan dari anggota tim yang ditunjuk.

Perintah terraform apply hanya akan dijalankan setelah persetujuan diberikan, lalu memperbarui infrastruktur Anda.

name: 'Terraform Apply'

on:
  workflow_dispatch:
    inputs:
      environment:
        description: 'Environment to deploy to'
        required: true
        default: 'staging'

jobs:
  terraform:
    name: 'Terraform Apply'
    runs-on: ubuntu-latest
    environment: ${{ github.event.inputs.environment }} # Target environment for approval

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

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

    - name: Terraform Apply
      id: apply
      run: terraform apply -auto-approve

Menghancurkan Infrastruktur dengan Aman

Perintah terraform destroy menghapus secara permanen semua sumber daya yang didefinisikan dalam konfigurasi Terraform Anda. Ini adalah operasi yang sangat kuat dan berpotensi berbahaya.

Perintah ini hanya boleh digunakan dalam skenario tertentu yang terkendali, seperti membongkar lingkungan pengujian sementara. Selalu periksa kembali sebelum melanjutkan!

Jangan pernah mengotomatiskan `destroy` tanpa gerbang manual yang ketat dan beberapa konfirmasi.

echo "Preparing to destroy infrastructure..."
terraform init
terraform plan -destroy
read -p "Are you absolutely sure you want to destroy ALL resources? (yes/no): " CONFIRM
if [ "$CONFIRM" = "yes" ]; then
  echo "Destroying infrastructure..."
  terraform destroy -auto-approve
else
  echo "Destroy operation cancelled."
fi

Penghancuran Infrastruktur yang Terkendali

Bahkan untuk `destroy`, kita dapat memanfaatkan GitHub Environments sebagai lapisan perlindungan tambahan. Ini memastikan bahwa tidak ada pihak yang dapat secara tidak sengaja atau dengan niat jahat menghancurkan sumber daya produksi tanpa otorisasi yang tepat.

Alur kerja harus mewajibkan persetujuan dan hanya dapat dipicu secara manual, idealnya oleh peran tertentu.

name: 'Terraform Destroy'

on:
  workflow_dispatch:
    inputs:
      environment:
        description: 'Environment to destroy'
        required: true
        default: 'staging'

jobs:
  terraform:
    name: 'Terraform Destroy'
    runs-on: ubuntu-latest
    environment: ${{ github.event.inputs.environment }} # Target environment for approval

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

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

    - name: Terraform Destroy
      id: destroy
      run: terraform destroy -auto-approve

Praktik Terbaik Otomatisasi IaC

Untuk mempertahankan alur IaC yang andal dan aman:

  • Peninjauan Kode: Selalu wajibkan peninjauan kode untuk perubahan IaC.
  • Hak Akses Minimum: Berikan token alur kerja dan akun layanan hanya izin minimum yang diperlukan.
  • Penguncian Keadaan: Pastikan alat IaC Anda (seperti Terraform) menggunakan penguncian keadaan untuk mencegah perubahan secara bersamaan.
  • Perubahan Kecil dan Bertahap: Hindari pembaruan infrastruktur yang besar dan monolitik.
  • Lingkungan Terpisah: Gunakan lingkungan yang berbeda (dev, staging, prod) dengan aturan persetujuan yang berbeda.

Pemeriksaan Alur Kerja IaC

Anda telah mempelajari otomatisasi pembaruan IaC dengan merencanakan, menerapkan, dan menghancurkan sumber daya. Sekarang, mari uji pemahaman Anda tentang pengamanan proses-proses ini.

Ringkasan: Pembaruan IaC Otomatis

Dalam pelajaran ini, Anda telah mempelajari cara mengotomatiskan alur kerja Infrastruktur sebagai Kode menggunakan GitHub Actions. Kita membahas:

  • Menjalankan terraform plan untuk melihat pratinjau perubahan dengan aman.
  • Menggunakan GitHub Environments sebagai gerbang persetujuan manual sebelum menerapkan atau menghancurkan infrastruktur.
  • Menerapkan alur kerja untuk operasi terraform apply dan terraform destroy yang terkendali.
  • Praktik terbaik utama untuk otomatisasi IaC yang aman dan andal.

Otomatisasi IaC membantu Anda mengelola sumber daya awan secara efisien dan percaya diri!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mengotomatiskan Pembaruan Infrastruktur” gratis?

Ya — teks lengkap “Mengotomatiskan Pembaruan Infrastruktur” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus CI/CD with GitHub Actions & DevOps Pipelines, upgrade ke CoddyKit PRO. Kursus CI/CD with GitHub Actions & DevOps Pipelines mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mengotomatiskan Pembaruan Infrastruktur”?

Terapkan alur kerja untuk merencanakan, menerapkan, dan menghapus perubahan infrastruktur dengan aman melalui langkah peninjauan dan persetujuan. Kamu berlatih CI/CD with GitHub Actions & DevOps Pipelines dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai CI/CD with GitHub Actions & DevOps Pipelines?

Tidak diperlukan pengalaman sebelumnya. CI/CD with GitHub Actions & DevOps Pipelines di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Mengotomatiskan Pembaruan Infrastruktur” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran CI/CD with GitHub Actions & DevOps Pipelines ini?

Ya. Setiap pelajaran CI/CD with GitHub Actions & DevOps Pipelines menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. IaC dengan Terraform dan GitHub Actions
  2. Mengelola Sumber Daya Awan
  3. Mengotomatiskan Pembaruan Infrastruktur
  4. Mengelola Status Terraform dan Backend Jarak Jauh
← Kembali ke CI/CD with GitHub Actions & DevOps Pipelines