Belajar Puppet - Setup & Installasi
Episode 3 of 23

Belajar Puppet - Setup & Installasi

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.

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

Pendahuluan

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.

Perencanaan Topologi dan DNS

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:

NodeFQDNPeran
Serverpuppet.example.comPuppet Server
Node ujiagent.example.comPuppet Agent

Pastikan semua node saling me-resolve nama. Untuk lab kecil, entri /etc/hosts sudah cukup:

Entri /etc/hosts di semua node
192.168.10.10   puppet.example.com
192.168.10.21   agent.example.com

Important

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.

Install Puppet Server

Tambahkan repo resmi Puppet sesuai OS server, lalu install puppetserver:

Debian/Ubuntu: repo + 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 -y
RHEL/Rocky/AlmaLinux: repo + install puppetserver
sudo rpm -Uvh https://yum.puppetlabs.com/puppet8-release-el-9.noarch.rpm
sudo dnf update
sudo dnf install puppetserver -y

Jalankan dan aktifkan service Puppet Server:

Start Puppet Server
sudo systemctl enable --now puppetserver
sudo systemctl status puppetserver

Note

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).

Install Puppet Agent di Node Uji

Di node uji, install puppet-agent:

Debian/Ubuntu: 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 -y
RHEL/Rocky/AlmaLinux: install puppet-agent
sudo rpm -Uvh https://yum.puppetlabs.com/puppet8-release-el-9.noarch.rpm
sudo dnf update
sudo dnf install puppet-agent -y

Binary agent ada di /opt/puppetlabs/bin, jadi tambahkan ke PATH agar mudah dipakai:

Tambahkan Puppet bin ke PATH
export PATH=/opt/puppetlabs/bin:$PATH
echo 'export PATH=/opt/puppetlabs/bin:$PATH' >> ~/.bashrc

Verifikasi instalasi kedua sisi:

Verifikasi versi di kedua node
puppet --version
puppetserver version

Bootstrap Sertifikat dan Persetujuan

Sekarang saatnya menghubungkan agent ke server. Di node uji, jalankan bootstrap sertifikat — perintah ini membuat key, CSR, dan mengunduh sertifikat CA dari server:

Bootstrap SSL di agent
sudo /opt/puppetlabs/bin/puppet ssl bootstrap

Di sisi server, periksa daftar CSR yang menunggu persetujuan:

Daftar CSR yang menunggu di server
sudo puppetserver ca list

Lalu tandatangani sertifikat agent:

Tandatangani CSR agent
sudo puppetserver ca sign --certname agent.example.com

Tip

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.

Agent Run Pertama

Dengan sertifikat terpasang, lakukan agent run pertama secara manual — flag -t adalah singkatan --test, yang menjalankan satu kali run lalu berhenti:

Agent run pertama di node uji
sudo /opt/puppetlabs/bin/puppet agent -t

Perhatikan 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.

Hasil agent run yang sehat
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 seconds

Note

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.

Puppet OSS vs Puppet Enterprise

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.

AspekPuppet OSSPuppet Enterprise
LisensiApache 2.0, gratisGratis sampai 10 node, berbayar di atasnya
Console webTidak adaAda (UI untuk node, class, dan report)
RBACTidak adaAda (role & permission pengguna)
ComplianceManualModul compliance bawaan
OrchestrationBolt (terpisah)Bolt + console job
Ideal untukBelajar, infra kecilInfrastruktur 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.

Instalasi Puppet Enterprise (ikhtisar)
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-installer

Warning

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.

Penutup

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:

  • DNS yang konsisten adalah prasyarat — agent menemukan server lewat FQDN, bukan IP.
  • Alur kepercayaan: bootstrap SSL → persetujuan CSR → agent run.
  • puppet ssl bootstrap menyiapkan key dan sertifikat; puppetserver ca sign menyetujuinya.
  • Agent berjalan otomatis tiap 30 menit, dan puppet agent -t untuk run manual.
  • PE menambah console, RBAC, dan compliance di atas OSS — gratis sampai 10 node.

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!

Belajar Puppet - Setup & Installasi | Belajar Puppet