Ebook Syafi
Koleksi
Admin
← DevOps Dengan AI
Edit Bab
💾 Simpan
Batal
Syarat
Mukadimah
Bab
Penutup
B
I
H2
H3
List
1.
Quote
Code
Link
Img
Table
Edit
Split
Preview
0 perkataan
# Bab 3: Terraform dengan AI Terraform adalah tempat AI memberi pulangan paling besar, sebab kerja ini penuh dengan corak berulang tetapi sintaksnya ketat. Satu koma salah, plan gagal. AI sangat baik untuk bahagian sintaks, tetapi teruk untuk bahagian reka bentuk. Jadi bahagikan kerja mengikut itu. **Apa yang anda akan belajar:** - Aliran kerja lima langkah untuk bina modul dengan AI - Perkara yang mesti disemak setiap kali AI tulis kod Terraform - Cara pasang plan gate dalam pull request - Dua kes sebenar dari projek saya ## 3.1 Aliran Kerja Lima Langkah **Langkah 1: Tulis kemahuan dalam ayat biasa.** Bukan minta kod dulu. Terangkan apa yang anda mahu wujud. **Langkah 2: Minta rangka, bukan penyelesaian penuh.** Minta struktur fail, variable, dan output sebelum minta isi. **Langkah 3: Semak rujukan terhadap versi sebenar.** Ini langkah yang paling ramai terlepas. AI boleh reka atribut. Semak dengan dokumen provider atau `terraform providers schema -json`. **Langkah 4: Minta validation dan ujian.** Variable dengan `validation` block, dan `terraform validate` dalam pipeline. **Langkah 5: Plan dan semak.** Jalankan `terraform plan`. Baca. Barulah apply. Contoh prompt untuk Langkah 2: ```text Saya mahu modul Terraform untuk VPC di AWS dengan keperluan ini: - CIDR 10.0.0.0/24 - Dua subnet: public 10.0.0.0/25 dan private 10.0.0.128/25 - Public subnet guna internet gateway, private subnet guna NAT gateway - Tag piawai: Project, Environment, Owner - Terraform 1.7+, provider AWS 5.x Beri saya: 1. Struktur fail modul (main.tf, variables.tf, outputs.tf, versions.tf) 2. Senarai variable dengan jenis dan default 3. Penjelasan ringkas setiap resource dan kenapa ia perlu Jangan tulis kod penuh dulu. ``` Selepas anda setuju dengan struktur, barulah minta kod. Pendekatan ini mengelak AI menulis tiga ratus baris yang anda perlu buang. ## 3.2 Semak Apa Selepas AI Tulis Senarai semak saya setiap kali: - **Versi provider dan Terraform** dipin dalam `versions.tf`, bukan `latest`. - **Atribut yang wujud.** Kalau ragu, rujuk dokumen provider untuk versi yang anda pin. - **Tiada hard-code.** AMI id, nombor akaun, dan nama bucket mesti jadi variable atau data source. - **Security group.** Cari `0.0.0.0/0` pada port selain 80 dan 443. Setiap satu perlu justifikasi. - **Tag.** Guna `default_tags` pada provider supaya konsisten, bukan tag berulang pada setiap resource. - **Backend.** Remote state dengan locking, bukan state lokal. - **Sumber kos.** NAT gateway, instance besar, dan EBS yang tidak dipakai adalah tiga penyumbang bil paling biasa. ## 3.3 Plan Gate dalam Pull Request Ini yang membuat AI selamat. Setiap perubahan infra mesti melalui plan yang boleh dibaca oleh manusia sebelum apply.  *Rajah 3: AI berhenti pada plan. Manusia yang semak diff dan tekan apply.* ```yaml name: Terraform Plan on: pull_request: paths: ['infra/terraform/**'] permissions: contents: read pull-requests: write jobs: plan: runs-on: ubuntu-latest defaults: run: working-directory: infra/terraform/environments/dev steps: - uses: actions/checkout@v4 - uses: hashicorp/setup-terraform@v3 with: terraform_version: 1.7.5 - name: Auth ke AWS (OIDC, tiada kunci kekal) uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: arn:aws:iam::123456789012:role/gha-terraform-plan aws-region: ap-southeast-5 - run: terraform fmt -check - run: terraform init -input=false - run: terraform validate - run: terraform plan -input=false -no-color -out=tfplan ``` Perhatikan tiga benda: guna OIDC supaya tiada access key disimpan dalam GitHub, `permissions` dikecilkan, dan job ini hanya buat `plan`. Apply adalah workflow berasingan yang memerlukan kelulusan manusia. ## 3.4 Kes Satu: Modul VPC dalam Dua Puluh Minit Ini dari projek akhir bootcamp DevOps saya. Peserta perlu bina VPC dengan subnet awam dan persendirian, satu web server di subnet awam, dan server monitoring di subnet persendirian. Cara saya buat dengan AI: 1. Saya tulis kemahuan dalam bentuk bullet, seperti prompt di atas. 2. AI cadang struktur fail. Saya betulkan dua perkara: NAT gateway mahal untuk projek pelajar, jadi saya guna NAT instance sahaja, dan saya minta setiap resource ada tag. 3. AI tulis kod. Saya semak security group dan dapati satu rule membenarkan SSH dari mana-mana. Saya tukar kepada CIDR saya. 4. `terraform plan` dijalankan. Saya minta AI ringkaskan plan itu dalam lima baris, kemudian saya semak sendiri bahagian yang melibatkan rangkaian. 5. Apply. Jumlah masa: kira-kira dua puluh minit berbanding dua hingga tiga jam kalau tulis dari kosong. Yang penting, masa yang dijimatkan itu saya guna untuk semak keselamatan, bukan untuk minum kopi. ## 3.5 Kes Dua: Import Sumber yang Sudah Ada Sumber yang dicipta secara manual adalah masalah biasa. Cara AI membantu: ```text Saya ada security group sg-0abc123 yang dicipta manual di AWS (region ap-southeast-5). Saya mahu ia diurus oleh Terraform tanpa memusnahkannya dan tanpa downtime. Tunjukkan: 1. Blok resource yang sepadan dengan keadaan semasa 2. Arahan terraform import 3. Cara sahkan plan jadi kosong selepas import ``` Kunci di sini ayat "tanpa memusnahkannya". Tanpa itu, AI mungkin cadang tukar nama resource yang akan menyebabkan ia dimusnahkan dan dicipta semula. Semak plan, pastikan tiada `-/+ destroy and then create`. ## 3.6 Kos: Guna AI, Tapi Sahkan dengan Data AI berguna untuk cadang right-sizing dan cari sumber terbiar, tetapi jangan percaya angka. Minta dia semak dari data sebenar: ```text Ini output aws ce get-cost-and-usage untuk 30 hari lepas. Kenal pasti tiga perkhidmatan dengan kos tertinggi dan cadang satu tindakan konkrit untuk setiap satu. Untuk setiap cadangan, nyatakan risiko dan cara mengesahkannya. ``` Kemudian sahkan dalam Cost Explorer. AI yang tak nampak tagihan sebenar akan memberi cadangan generik seperti "guna reserved instance", yang belum tentu sesuai untuk beban kerja anda. Bab seterusnya: konfigurasi server dan container. \newpage