Belajar Chef - Chef Habitat
Series/Belajar Chef/Episode 17
Episode 17 of 23

Belajar Chef - Chef Habitat

Mengemas aplikasi dengan Chef Habitat: konsep origin dan plan, pembangunan artifact dengan hab pkg build, runtime supervisor dengan hab sup run, serta integrasi aplikasi Habitat di server yang dikelola Chef.

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

Pendahuluan

Di episode 16 kalian memperluas Chef dengan custom resource dan handler. Otomasi konfigurasi server sudah lengkap, tapi ada satu lapisan yang belum: aplikasi itu sendiri. Di episode 17 ini kita membahas Chef Habitat — framework untuk mengemas, menjalankan, dan mengatur aplikasi. Berbeda dengan Chef Infra yang mengelola server, Habitat mengemas aplikasi beserta runtime-nya menjadi artifact yang bisa berjalan di mana saja.

Tujuan episode ini:

  • Memahami konsep origin, plan, dan artifact.
  • Membangun paket dengan hab pkg build.
  • Menjalankan aplikasi dengan supervisor dan service topology.
  • Menggabungkan aplikasi Habitat dengan server yang dikelola Chef.

Konsep Dasar Habitat

Habitat memperkenalkan beberapa istilah kunci:

  • Origin — namespace kepemilikan paket, diikat dengan key signing.
  • Plan — file definisi bagaimana paket dibangun (plan.sh).
  • Artifact — hasil build dalam format .hart, berisi aplikasi dan dependency-nya.
  • Supervisor — runtime yang menjalankan dan mengawasi layanan.
  • Service group & topology — cara layanan saling berkomunikasi dan berkoordinasi.

Plan adalah jantung Habitat. Contoh minimal:

habitat/plan.sh
pkg_name=hello-world
pkg_origin=myorigin
pkg_version="1.0.0"
pkg_maintainer="Arman <arman@example.com>"
pkg_deps=(core/nginx)
pkg_exports=(port=server.port)
 
do_build() {
  cp -r ../assets/* "${pkg_prefix}/"
}

Fungsi do_build() menyalin asset ke prefix paket. Habitat menyediakan banyak hook lain, seperti do_install, do_prepare, dan lifecycle hooks yang berjalan saat supervisor menghidupkan layanan.

Membangun Artifact

Sebelum build, generate key signing untuk origin:

Setup origin dan build
hab origin key generate myorigin
hab plan init myorigin hello-world
hab pkg build habitat

Hasil build berupa artifact .hart di direktori results/:

Instal dan ekspor artifact
ls -la results/
hab pkg install results/myorigin-hello-world-1.0.0-*.hart
hab pkg export docker results/myorigin-hello-world-1.0.0-*.hart

Note

Artifact .hart ditandatangani dengan key privat origin. Jangan menginstal paket dari origin yang tidak dikenal — verifikasi tanda tangan dengan hab pkg verify terlebih dahulu.

Supervisor dan Service Topology

Supervisor mengawasi layanan: memulai proses, me-restart saat gagal, mengelola konfigurasi runtime, dan menghubungkan service group lewat bind.

Jalankan supervisor dan muat layanan
hab sup run
hab svc load myorigin/hello-world --group production

Topology menentukan cara anggota service group berkoordinasi:

TopologyPerilakuCocok untuk
standaloneSemua anggota mandiriStateless services
leader-followerSatu leader dipilih, sisanya followerDatabase, coordinator
starSatu hub yang menghubungkan semuaKomunikasi terpusat

Leader dipilih otomatis oleh supervisor; saat leader mati, supervisor memilih penggantinya.

Integrasi dengan Server yang Dikelola Chef

Chef dan Habitat saling melengkapi. Chef mengelola server — paket sistem, user, sertifikat, firewall — sedangkan Habitat menjalankan aplikasi sebagai layanan. Cookbook chef-habitat menyediakan resource siap pakai:

recipe/habitat.rb
hab_package "myorigin/hello-world" do
  version "1.0.0"
end
 
hab_sup "default" do
  topology "leader"
end
 
hab_service "myorigin/hello-world" do
  group "production"
  bind "backend:backend.app"
end

Dengan pola ini, run list node cukup memuat recipe[my_app::habitat]; saat converge, supervisor memuat dan menjalankan aplikasi. Kalian tetap memakai InSpec untuk memverifikasi layanan:

Verifikasi layanan Habitat
control "hello_world_is_running" do
  describe port(8080) do
    it { should be_listening }
  end
end

Penutup

Pada episode 17 ini kalian mengenal Chef Habitat: konsep origin dan plan, pembangunan artifact dengan hab pkg build, tanda tangan key origin, supervisor dengan hab sup run, service topology, serta integrasi aplikasi Habitat di atas server yang dikelola Chef.

Inti yang harus dibawa pulang:

  • Plan mendefinisikan cara aplikasi dibangun.
  • Artifact .hart adalah paket lengkap yang ditandatangani.
  • Supervisor mengawasi dan menghidupkan layanan secara otomatis.
  • Topology menentukan koordinasi anggota service group.
  • Chef + Habitat bekerja bersama: Chef kelola server, Habitat kelola aplikasi.

Di episode 18 berikutnya kita memperdalam lapisan pengujian yang disinggung di episode 15: Test Kitchen & Integration Testing — menyusun kitchen.yml, memilih driver, menulis verifikasi InSpec, dan mengintegrasikannya ke CI. Sampai jumpa di episode 18!

Belajar Chef - Chef Habitat | Belajar Chef