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 DevOps Bootcamp 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 DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp 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 planAlur 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-colorPersetujuan 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-approveMenghancurkan 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."
fiPenghancuran 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-approvePraktik 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 planuntuk melihat pratinjau perubahan dengan aman. - Menggunakan GitHub Environments sebagai gerbang persetujuan manual sebelum menerapkan atau menghancurkan infrastruktur.
- Menerapkan alur kerja untuk operasi
terraform applydanterraform destroyyang 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 DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp 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 DevOps Bootcamp 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 DevOps Bootcamp?
Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp 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 DevOps Bootcamp ini?
Ya. Setiap pelajaran DevOps Bootcamp 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
- IaC dengan Terraform dan GitHub Actions
- Mengelola Sumber Daya Awan
- Mengotomatiskan Pembaruan Infrastruktur
- Mengelola Status Terraform dan Backend Jarak Jauh