Panduan membangun lab Puppet: menambahkan repo resmi, menginstall puppetserver dan puppet-agent, mengonfigurasi DNS dan sertifikat dengan bootstrap SSL, serta agent run pertama dan perbandingan OSS vs Enterprise.

Di episode 2 sebelumnya kalian sudah memahami arsitektur Puppet — alur agent run, peran sertifikat SSL, dan sepuluh komponen utama. Sekarang waktunya praktek langsung: kita akan membangun lab Puppet dari nol. Di episode ini kalian akan menginstall Puppet Server di satu node, memasang Puppet Agent di node uji, menghubungkan keduanya lewat sertifikat SSL, dan melakukan agent run pertama yang berhasil. Di akhir episode kalian juga akan paham kapan memilih Puppet OSS dan kapan beralih ke Puppet Enterprise.
Sebelum instalasi, tentukan identitas setiap node. Puppet sangat bergantung pada nama host yang konsisten — agent menemukan server lewat FQDN, bukan IP.
Untuk lab ini kita pakai:
| Node | FQDN | Peran |
|---|---|---|
| Server | puppet.example.com | Puppet Server |
| Node uji | agent.example.com | Puppet Agent |
Pastikan semua node saling me-resolve nama. Untuk lab kecil, entri /etc/hosts sudah cukup:
192.168.10.10 puppet.example.com
192.168.10.21 agent.example.comImportant
Nama puppet adalah default yang dicari agent bila tidak dikonfigurasi. Jika server kalian punya nama lain, atur setting server di /etc/puppetlabs/puppet/puppet.conf pada tiap agent agar menunjuk ke nama tersebut.
Tambahkan repo resmi Puppet sesuai OS server, lalu install puppetserver:
wget https://apt.puppetlabs.com/puppet8-release-focal.deb
sudo dpkg -i puppet8-release-focal.deb
sudo apt update
sudo apt install puppetserver -ysudo rpm -Uvh https://yum.puppetlabs.com/puppet8-release-el-9.noarch.rpm
sudo dnf update
sudo dnf install puppetserver -yJalankan dan aktifkan service Puppet Server:
sudo systemctl enable --now puppetserver
sudo systemctl status puppetserverNote
Puppet Server butuh waktu beberapa detik untuk siap karena memuat JVM dan menginisialisasi Certificate Authority. Jangan panik kalau status awal masih activating — tunggu sampai berubah menjadi active (running).
Di node uji, install puppet-agent:
wget https://apt.puppetlabs.com/puppet8-release-focal.deb
sudo dpkg -i puppet8-release-focal.deb
sudo apt update
sudo apt install puppet-agent -ysudo rpm -Uvh https://yum.puppetlabs.com/puppet8-release-el-9.noarch.rpm
sudo dnf update
sudo dnf install puppet-agent -yBinary agent ada di /opt/puppetlabs/bin, jadi tambahkan ke PATH agar mudah dipakai:
export PATH=/opt/puppetlabs/bin:$PATH
echo 'export PATH=/opt/puppetlabs/bin:$PATH' >> ~/.bashrcVerifikasi instalasi kedua sisi:
puppet --version
puppetserver versionSekarang saatnya menghubungkan agent ke server. Di node uji, jalankan bootstrap sertifikat — perintah ini membuat key, CSR, dan mengunduh sertifikat CA dari server:
sudo /opt/puppetlabs/bin/puppet ssl bootstrapDi sisi server, periksa daftar CSR yang menunggu persetujuan:
sudo puppetserver ca listLalu tandatangani sertifikat agent:
sudo puppetserver ca sign --certname agent.example.comTip
Untuk lab pribadi, kalian bisa mengaktifkan autosign agar semua CSR ditandatangani otomatis. Ini sangat menghemat waktu saat ada banyak node, tapi jangan pernah menyalakan autosign di production tanpa whitelist — ia membuka pintu bagi node yang tidak dikenal untuk bergabung ke infrastruktur kalian.
Dengan sertifikat terpasang, lakukan agent run pertama secara manual — flag -t adalah singkatan --test, yang menjalankan satu kali run lalu berhenti:
sudo /opt/puppetlabs/bin/puppet agent -tPerhatikan keluarannya. Karena belum ada class yang diterapkan, run pertama hanya akan menampilkan bahwa catalog kosong dan tidak ada perubahan. Jika ada masalah koneksi atau sertifikat, error di sinilah terlihat — selesaikan sebelum lanjut ke episode berikutnya.
Info: Using environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Evaluating configuration cache
Info: Starting catalog run
Info: Catalog compiled on puppet.example.com
Info: Applying configuration version '...'
Notice: Applied catalog in 0.02 secondsNote
Setelah ini, agent akan berjalan otomatis setiap 30 menit sesuai interval default. Untuk mengecek kesehatan di tengah-tengah, jalankan puppet agent -t kapan saja — aman karena Puppet bersifat idempotent.
Di episode 0 sampai 3 ini kita memakai Puppet OSS — gratis, open source, dan cukup untuk belajar serta infrastruktur kecil. Untuk lingkungan enterprise, ada Puppet Enterprise (PE), saat ini rilis 2025.1.x dengan versi LTS 2023.8 yang juga tersedia. PE gratis dipakai hingga 10 node.
| Aspek | Puppet OSS | Puppet Enterprise |
|---|---|---|
| Lisensi | Apache 2.0, gratis | Gratis sampai 10 node, berbayar di atasnya |
| Console web | Tidak ada | Ada (UI untuk node, class, dan report) |
| RBAC | Tidak ada | Ada (role & permission pengguna) |
| Compliance | Manual | Modul compliance bawaan |
| Orchestration | Bolt (terpisah) | Bolt + console job |
| Ideal untuk | Belajar, infra kecil | Infrastruktur enterprise |
Setup PE 2025.1.x cukup berbeda: kalian mengunduh installer resmi dari situs Puppet, menjalankan puppet-enterprise-installer, dan menjawab wizard. Hasil akhirnya adalah satu server yang sudah berisi Puppet Server, PuppetDB, console web, dan RBAC sekaligus. Instalasi agent di node target sama seperti OSS, dan semua node akan muncul di console untuk diatur melalui classifier.
wget <url-unduhan-pe-2025.1.x>
sudo tar -xzf puppet-enterprise-2025.1.x-<arch>.tar.gz
cd puppet-enterprise-2025.1.x-<arch>
sudo ./puppet-enterprise-installerWarning
PE membutuhkan resource lebih besar daripada OSS — minimal 4 GB RAM dan 20 GB disk untuk server PE. Untuk lab belajar, Puppet OSS jauh lebih ringan; sisihkan PE untuk episode lanjutan yang membahas console dan compliance.
Pada episode 3 ini kalian berhasil membangun lab Puppet pertama: menambahkan repo resmi, menginstall Puppet Server di satu node dan Puppet Agent di node uji, mengonfigurasi resolusi nama, melakukan bootstrap sertifikat SSL, menandatangani CSR, dan menyelesaikan agent run pertama dengan puppet agent -t.
Inti yang harus dibawa pulang:
puppet ssl bootstrap menyiapkan key dan sertifikat; puppetserver ca sign menyetujuinya.puppet agent -t untuk run manual.Di episode 4 berikutnya kita akan masuk ke jantung penulisan konfigurasi: manifests & resource types — mempelajari resource package, service, file, exec, user, group, dan cron, memahami konsep title, parameter, dan properties, serta menguji manifest secara lokal dengan puppet apply. Saatnya menulis kode Puppet pertama kalian!