Belajar Puppet - Pre-Requisites Skill & Setup Environment
Episode 0 of 23

Belajar Puppet - Pre-Requisites Skill & Setup Environment

Sebelum menulis manifest pertama, siapkan skill dasar dan environment Puppet: pemahaman Linux dan Ruby, konsep declarative configuration management, serta instalasi Puppet, PDK, dan node uji.

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

Pendahuluan

Selamat datang di series Belajar Puppet! Series ini akan membawa kalian menguasai Puppet — platform infrastructure-as-code yang menjadi pionir configuration management — mulai dari konsep dasar dan arsitektur, manifest dan resource type, hingga module, Hiera, PuppetDB, Bolt, dan Puppet Enterprise. Puluhan episode akan membangun pemahaman kalian lapis demi lapis sampai siap diterapkan di production.

Tapi sebelum menulis manifest pertama, ada beberapa skill dasar dan tools yang wajib kalian siapkan terlebih dahulu. Mengapa prasyarat ini penting? Karena Puppet bukan sekadar bahasa untuk menulis konfigurasi — dia adalah sistem yang hidup di jaringan, bergantung pada SSL untuk autentikasi agent, DNS agar agent menemukan server, dan pemahaman Linux yang baik agar kalian bisa membaca kondisi server yang dikelola. Kalau fondasinya belum siap, error sertifikat dan DNS akan terasa seperti teka-teki tanpa ujung.

Episode 0 ini adalah peta jalannya: kita akan menyiapkan skill dasar, melengkapi tools, lalu memastikan lingkungan Puppet pertama kalian berjalan.

Skill Dasar yang Wajib Dimiliki

Linux/Unix: Package Manager, Service, dan Permission

Puppet mengelola server Linux, jadi tiga area ini harus kalian kuasai:

AreaYang perlu dikuasaiContoh perintah
Package managerInstall, update, hapus paketapt install, dnf install
Service managementStart, stop, enable servicesystemctl start, systemctl enable
User & permissionMembuat user, mengatur hak akses fileuseradd, chmod, chown

Kenapa penting? Karena sebagian besar resource yang akan kalian tulis di Puppet — package, service, file, user — pada dasarnya mengotomasi hal yang saat ini kalian lakukan manual lewat perintah di atas.

Konsep IaC & Configuration Management

Puppet menganut model declarative: kalian mendeklarasikan keadaan yang diinginkan (desired state), bukan menulis urutan langkah untuk mencapai keadaan itu. Dua konsep kunci:

  • Declarative — kalian bilang "nginx harus terinstall dan berjalan", Puppet yang memutuskan bagaimana mewujudkannya.
  • Idempotent — menjalankan konfigurasi berkali-kali tetap menghasilkan hasil yang sama; tidak ada efek samping dari pengulangan.

Bandingkan dengan scripting imperatif: kalian menulis langkah demi langkah, dan jika langkah pertama sudah pernah dijalankan, skrip itu bisa merusak keadaan. Paradigma declarative inilah yang membuat Puppet cocok untuk ribuan node.

Dasar Ruby

Bahasa manifest Puppet menggunakan sintaks yang menyerupai Ruby. Kalian tidak perlu menjadi programmer Ruby, tapi memahami sintaks dasar akan sangat membantu:

  • Variabel dengan prefiks $ seperti $domain.
  • Pemanggilan fungsi seperti include profile::web.
  • Struktur blok yang menyerupai Ruby — resource type package ditulis sebagai package { 'nginx':{:puppet} } dengan parameter di dalam blok.

Di episode 4 dan 5 kita akan menulis manifest lengkap, jadi tidak perlu mendalaminya sekarang.

Networking: SSL & DNS

Agent Puppet berkomunikasi dengan Puppet server melalui jaringan, dan kepercayaannya dibangun di atas sertifikat SSL. Setiap agent membuat certificate signing request yang harus disetujui server. Kalian juga perlu paham DNS, karena agent menemukan server melalui FQDN seperti puppet.example.com — bukan IP mentah.

Note

Konfigurasi DNS yang rapi akan menghemat banyak waktu di episode 3. Jika lab kalian tidak punya DNS server, pakai entri /etc/hosts di semua node — untuk skala lab cara ini cukup.

Software & Tools yang Disiapkan

ToolsFungsiKeterangan
Puppet ServerServer pusat yang menyusun catalogOSS 8.x atau Puppet Enterprise
Puppet AgentAgen yang berjalan di tiap nodeTerinstall di semua node yang dikelola
PDKPuppet Development KitScaffolding dan testing module
Node ujiTarget pengelolaanVM atau container
Akun ForgeUnduh module komunitasOpsional

Instalasi Puppet OSS 8.x atau Puppet Enterprise

Puppet dapat dipasang dari repo resmi apt.puppetlabs.com (Debian/Ubuntu) atau yum.puppetlabs.com (RHEL family). Untuk lab, Puppet OSS 8.x sudah lebih dari cukup. Puppet Enterprise (PE) 2025.1.x juga tersedia dengan lisensi gratis sampai 10 node — kalian bisa mencobanya nanti di episode 3.

Tambahkan repo resmi Puppet di Debian/Ubuntu
wget https://apt.puppetlabs.com/puppet8-release-focal.deb
sudo dpkg -i puppet8-release-focal.deb
sudo apt update
Tambahkan repo resmi Puppet di RHEL/Rocky/AlmaLinux
sudo rpm -Uvh https://yum.puppetlabs.com/puppet8-release-el-9.noarch.rpm
sudo dnf update

Important

Pilih file repo yang sesuai dengan versi OS kalian. Kode focal merujuk Ubuntu 20.04, jammy untuk 22.04, dan el-9 untuk RHEL 9 family. Menggunakan repo yang salah akan membuat package manager gagal menemukan paket.

Opsi Container

Tidak mau mengotori sistem utama? Puppet menyediakan image resmi di Docker Hub: puppet/puppetserver untuk server dan puppet/puppet-agent untuk agent. Cara ini paling cepat untuk memulai lab.

Jalankan Puppetserver lewat Docker
docker run --name puppetserver --hostname puppetserver.example.com -d puppet/puppetserver
docker run --name agent --hostname agent.example.com -d puppet/puppet-agent

Puppet Development Kit (PDK)

PDK adalah tool untuk membuat scaffolding module Puppet, menulis unit test, dan memvalidasi sintaks. Kita akan memakainya secara intensif mulai episode 5, jadi install sekarang.

Install PDK dari repo resmi
sudo apt install pdk -y

Node Uji

Siapkan minimal satu node uji — VM atau container — yang akan menjadi target pertama yang kalian kelola. Node ini harus bisa terhubung ke server dan memiliki resolusi nama yang benar.

Akun Forge (Opsional)

Puppet Forge adalah registry module komunitas di forge.puppet.com. Mendaftar akun tidak wajib untuk membaca dan memakai module, tapi akan berguna jika kalian nanti ingin mempublikasikan module sendiri.

Verifikasi Lingkungan

Setelah semua tools terpasang, pastikan semuanya berfungsi:

Verifikasi versi tools
puppet --version
pdk --version
which facter

Kalian juga bisa mengecek fakta dasar node uji dengan facter untuk memastikan node tersebut dikenali:

Lihat fakta dasar node
facter os.name
facter networking.ip

Tip

Simpan versi Puppet yang terinstall. Di episode 4, perbedaan kecil di versi bisa memengaruhi penulisan beberapa resource — karena itu selalu ada perintah puppet --version. Biasakan mencantumkan versi Puppet saat bertanya di forum atau Slack.

Checklist Episode 0

  • Paham perbedaan paradigma declarative dan imperative.
  • Nyaman dengan package manager, service systemd, dan permission Linux.
  • Mengetahui dasar sintaks Ruby yang dipakai manifest Puppet.
  • Repo resmi Puppet sudah ditambahkan di server dan node uji.
  • PDK terinstall dan puppet --version berjalan normal.
  • Satu node uji siap dikelola dengan resolusi nama yang benar.

Penutup

Di episode 0 ini kalian sudah menyiapkan pijakan untuk seluruh series: memahami skill dasar Linux, konsep IaC, sintaks Ruby, dan networking yang menjadi fondasi Puppet, melengkapi tools yang dibutuhkan (Puppet Server, Puppet Agent, PDK, node uji), serta memverifikasi bahwa lingkungan kalian siap dipakai.

Inti yang harus dibawa pulang:

  • Puppet menganut paradigma declarative dan idempotent — kalian mendeklarasikan desired state, bukan langkah-langkah.
  • Kuasai Linux, Ruby dasar, SSL, dan DNS karena seluruh series dibangun di atas empat fondasi ini.
  • Siapkan Puppet Server + Agent + PDK + node uji sebagai perangkat standar lab kalian.
  • Pilih repo yang sesuai versi OS — kesalahan kecil di sini akan terasa sampai episode instalasi.

Di episode 1 berikutnya kita akan membahas sejarah, latar belakang, dan mengapa dunia membutuhkan Puppet — mulai dari era scripting manual, lahirnya CFEngine tahun 1993, kemunculan Puppet oleh Luke Kanies pada 2005, hingga bagaimana Puppet dibandingkan dengan Chef, Ansible, dan SaltStack. Pastikan lab kalian sudah berdiri, karena perjalanan Belajar Puppet baru saja dimulai!

Belajar Puppet - Pre-Requisites Skill & Setup Environment | Belajar Puppet