Belajar Chef - Integrasi Cloud & IaC
Series/Belajar Chef/Episode 14
Episode 14 of 23

Belajar Chef - Integrasi Cloud & IaC

Membawa Chef ke cloud: mengelola instance AWS, GCP, dan Azure lewat recipe atau plugin knife, integrasi dengan Terraform dan cloud-init, bootstrap node otomatis di CI/CD, golden images, dan immutable infrastructure.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 13 kalian sudah mengamankan komunikasi antar komponen Chef dengan kunci dan sertifikat. Sekarang saatnya membawa arsitektur itu ke cloud. Di episode 14 ini kita membahas integrasi Chef dengan cloud dan IaC — mengelola instance AWS, GCP, dan Azure, menghubungkan Chef dengan Terraform dan cloud-init, serta menerapkan pola bootstrap otomatis, golden images, dan immutable infrastructure.

Tujuan episode ini:

  • Mengelola instance cloud lewat plugin knife.
  • Mengintegrasikan Terraform dan cloud-init untuk provisioning.
  • Menjalankan bootstrap node secara otomatis di CI/CD.
  • Memahami golden images dan immutable infrastructure.

Mengelola Instance Cloud via Knife

Plugin knife seperti knife-ec2, knife-google, dan knife-azure memungkinkan kalian membuat instance langsung dari CLI, sekaligus me-bootstrap-nya menjadi node Chef:

Buat dan bootstrap instance EC2
knife ec2 server create \
  -I ami-0abcdef1234567890 \
  -f t3.micro \
  --ssh-key arman-key --ssh-user ubuntu \
  -Z ap-southeast-1a \
  --run-list 'role[app-server]' \
  --tags Environment=staging

Note

Plugin knife dan Terraform sama-sama menyentuh API cloud; yang berbeda hanya alur kerjanya. Knife plugin cocok untuk bootstrap manual yang cepat, sedangkan Terraform untuk pipeline IaC penuh.

Provisioning via Recipe

Alternatif lain adalah provisioning langsung dari recipe, misalnya memanggil SDK cloud dalam library Ruby. Namun pola ini jarang dipakai karena mencampur orkestrasi dengan konfigurasi. Pola yang lebih umum dan direkomendasikan: bootstrap di akhir pipeline provisioning — biarkan Terraform yang membuat infrastruktur, lalu node menyambung ke Chef sendiri.

Integrasi Terraform dan cloud-init

Terraform membangun infrastruktur (network, instance, disk); cloud-init mengeksekusi user-data saat instance pertama kali hidup. Di sinilah Chef di-bootstrap:

cloud-init user-data — bootstrap node Chef
#!/bin/bash
set -euxo pipefail
apt-get update -y
curl -L https://omnitruck.chef.io/install.sh | sudo bash -s -- -v 18.5
sudo mkdir -p /etc/chef/trusted_certs
sudo cp /tmp/chef-server.crt /etc/chef/trusted_certs/
sudo tee /etc/chef/client.rb > /dev/null <<EOF
chef_server_url "https://chef.example.com/organizations/devops"
validation_client_name "devops-validator"
validation_key "/etc/chef/validation.pem"
node_name "web-$(hostname -s)"
environment "staging"
EOF
sudo chef-client -j /tmp/first-boot.json

File first-boot.json berisi run list awal:

first-boot.json
{
  "run_list": ["role[base]", "role[app-server]"]
}

Terraform mengirim skrip di atas lewat argumen user_data. Begitu instance hidup, cloud-init menjalankannya, chef-client terinstal, dan node langsung terdaftar di Infra Server tanpa tangan manusia.

Bootstrap Otomatis di CI/CD

Pola bootstrap otomatis dalam pipeline:

  1. Provisionterraform apply membuat instance baru.
  2. Bootstrap — instance me-bootstrap sendiri lewat cloud-init saat boot.
  3. Converge — chef-client menjalankan run list dari Infra Server.
  4. Verify — InSpec men-scan node dan laporan dikirim ke Automate.
  5. Promote — bila lolos, node masuk pool production.
Contoh langkah pipeline
terraform apply -auto-approve
sleep 60
chef-client

Tip

Simpan hasil terraform plan sebagai artifact, dan pastikan run chef-client di CI memakai environment yang sesuai dengan diff-nya. Dengan begitu setiap perubahan infrastruktur tercatat dan bisa di-rollback.

Golden Images dan Immutable Infrastructure

Golden image adalah image base yang sudah disiapkan: chef-client terinstal, sertifikat trust siap, tooling dasar terpasang. Node baru hanya perlu user-data tipis untuk menyelesaikan bootstrap.

Immutable infrastructure berarti instance tidak pernah diubah setelah lahir — setiap perubahan menghasilkan image baru, lalu instance lama diganti. Pola ini cocok dipadukan dengan golden image: Chef digunakan saat membangun image, bukan saat instance berjalan.

PendekatanPerubahanCocok untuk
Mutable (konvensional)chef-client di instanceServer stateful, DB, patch cepat
Immutable (golden image)Image baru + replaceStateless, web tier, autoscaling

Tip

Kombinasikan keduanya: immutable untuk lapisan stateless dengan autoscaling, mutable untuk layanan stateful. Chef tetap dipakai di kedua model — yang berbeda hanya kapan dan di mana ia berjalan.

Penutup

Pada episode 14 ini kalian memahami integrasi Chef dengan cloud dan IaC: pembuatan instance lewat plugin knife, provisioning Terraform yang digabung dengan cloud-init untuk me-bootstrap node otomatis, pipeline bootstrap di CI/CD, serta konsep golden images dan immutable infrastructure.

Inti yang harus dibawa pulang:

  • Knife plugin mempercepat bootstrap instance secara manual.
  • Terraform + cloud-init adalah pasangan provisioning yang paling umum.
  • Bootstrap otomatis menghilangkan langkah manual saat instance lahir.
  • Golden image mempercepat siklus hidup node baru.
  • Immutable infra mengganti instance, bukan mengubahnya.

Di episode 15 berikutnya kita memoles kebiasaan kerja: Best Practice — desain cookbook yang idempoten dan modular, metadata dependency yang benar, versioning, serta test-driven infrastructure dengan InSpec dan Test Kitchen. Sampai jumpa di episode 15!

Belajar Chef - Integrasi Cloud & IaC | Belajar Chef