Menjelajahi versi terkini ekosistem Puppet: apa yang baru di Puppet 8 open source dengan runtime Ruby 3.3 dan encoding UTF-8 bawaan, deprecation terbaru, serta fitur Puppet Enterprise 2025.1 seperti Security Compliance Management dan manajemen node berbasis peran.

Di episode 19 kalian sudah menguasai sisi operasional: menganalisis performa agent run, men-tuning Puppet Server dari sisi JVM, dan menangani berbagai error umum di lapangan. Keterampilan tersebut tetap relevan lintas versi, tetapi ekosistem Puppet terus bergerak maju — dan versi yang lebih baru membawa perubahan yang wajib kalian pahami.
Menjadi engineer Puppet yang matang bukan hanya soal menguasai versi lama, melainkan juga mengikuti arah perkembangan tooling. Episode ini membahas fitur stabil terbaru di dua jalur distribusi: Puppet 8 open source dengan runtime Ruby 3.3 dan encoding UTF-8 bawaan, serta Puppet Enterprise 2025.1 dengan Security Compliance Management, manajemen node berbasis peran, dan pendekatan compliance yang baru.
Puppet tersedia dalam dua bentuk utama:
| Aspek | Puppet OSS | Puppet Enterprise |
|---|---|---|
| Lisensi | Apache 2.0 | Komersial, gratis hingga 10 node |
| Manajemen | CLI dan file | CLI plus console web |
| RBAC | Manual melalui file | Terintegrasi, berbasis peran |
| Console dan reporting | Terbatas | Lengkap, node dan impact analysis |
| Compliance | Manual | SCM dan SCE terintegrasi |
| Rilis | Reguler 8.x | 2025.x reguler plus 2023.8 LTS |
Keduanya berbagi bahasa DSL, agent, dan modul yang sama — kode yang kalian tulis di OSS bisa dipindahkan ke PE tanpa banyak perubahan.
Puppet 8 adalah rilis open source terbaru dari lini Puppet Platform 8, yang menggantikan Puppet 7. Beberapa perubahan mendasarnya adalah:
Mulai Puppet 8, paket agent dan server membundel Ruby mereka sendiri sehingga tidak lagi bergantung pada Ruby sistem. Versi runtime terus dinaikkan — rilis Puppet 8.8 ke atas sudah diuji terhadap Ruby 3.3. Konsekuensinya, custom facts, types, dan providers yang kalian tulis harus berjalan di runtime baru ini.
/opt/puppetlabs/puppet/bin/ruby --version
puppet --versionNote
Karena Ruby kini dibundel, jangan pernah memanggil ruby dari PATH sistem untuk menjalankan kode Puppet. Gunakan selalu path /opt/puppetlabs/puppet/bin/ruby atau perintah yang disediakan Puppet, agar versi runtime sesuai dengan yang diharapkan agent.
Sebelumnya, encoding default bisa berbeda-beda tergantung locale sistem, yang membuat custom facts atau template bermasalah saat berhadapan dengan karakter non-ASCII. Di Puppet 8, Ruby menggunakan UTF-8 sebagai default external encoding, sehingga pemrosesan string menjadi lebih konsisten di seluruh sistem operasi — termasuk pada Windows yang sebelumnya menggunakan code page tertentu.
Perubahan ini terutama berdampak pada facts dan provider yang melakukan parsing teks. Jika kalian punya custom fact yang memaksa encoding tertentu, sekarang umumnya tidak perlu — namun tetap validasi ulang di lingkungan kalian.
Pengembangan modul semakin mengarah ke PDK, Puppet Development Kit. Alur kerja modernnya: pdk new module, lalu kelola dependensi lewat Puppetfile dan install dengan r10k atau Code Manager:
pdk new module nginx
cd nginx
pdk validate
pdk test unitPerintah puppet module di Puppet 8 juga telah dirombak untuk memanfaatkan API Forge yang lebih modern, dengan resolusi dependensi yang lebih baik dibanding versi sebelumnya.
Beberapa hal yang perlu diperhatikan saat upgrade ke Puppet 8:
| Perubahan | Detail |
|---|---|
| Ruby 2.x tidak didukung | Wajib Ruby 3.x; runtime dibundel |
| Encoding Windows | Default encoding kini UTF-8, bukan code page aktif |
| Utilitas ENV Windows | Metode Puppet::Util untuk environment variables dihapus |
| Fungsi dan setting lawas | Fungsi dan setting yang sudah ditandai deprecated dihapus |
Warning
Sebelum upgrade, jalankan puppet apply --noop di lingkungan staging dan baca release notes di puppet.com/docs untuk daftar deprecation yang lengkap. Pastikan juga modul dari Forge mendukung Puppet 8 — cek metadata modul di Forge sebelum menginstal.
Puppet Enterprise 2025.1 adalah contoh rilisan reguler terbaru dari jalur PE 2025.x. Untuk tim yang membutuhkan stabilitas jangka panjang, Puppet juga mempertahankan jalur LTS 2023.8 dengan dukungan lebih lama — dan keduanya tetap dapat dijalankan gratis hingga 10 node.
Salah satu fitur yang paling banyak dibicarakan pada PE 2025.1 adalah Security Compliance Management. Di dalam PE, singkatan SCM mengacu pada kemampuan compliance yang sebelumnya dikenal sebagai Puppet Comply. SCM memindai node yang dikelola PE terhadap CIS Benchmarks, menampilkan status kepatuhan di dashboard, dan menyarankan perbaikan.
SCM tidak hanya menampilkan laporan; ia terintegrasi dengan manajemen peran sehingga tim yang berbeda — misalnya tim platform, tim security, dan tim operasional — mendapatkan visibilitas dan kendali yang sesuai dengan tanggung jawab masing-masing.
Important
Dalam konteks Puppet Enterprise, SCM adalah Security Compliance Management. Untuk menerapkan konfigurasi agar sesuai benchmark secara otomatis, gunakan Security Compliance Enforcement (SCE) — modul premium sce_linux dan sce_windows yang menjalankan Puppet sebagai policy-as-code.
PE 2025.1 memperkuat cara node dikelompokkan dan diklasifikasikan. Alih-alih menempelkan class satu per satu ke node individual, kalian bisa mendefinisikan peran — kombinasi dari node group, class, dan variabel — lalu menetapkan node ke peran tersebut. Model ini sangat selaras dengan pola Roles/Profiles yang sudah kita pelajari di episode 5:
class role::web_server {
include profile::base
include profile::nginx
include profile::app
}Dengan RBAC yang sudah terintegrasi, pemberian hak akses juga berbasis peran: seorang engineer bisa diberi hak untuk menjalankan orchestration di node group tertentu tanpa diberi akses ke seluruh console.
PE 2025.1 juga menyatukan beberapa layanan operasional di bawah satu payung yang lebih kohesif:
| Fitur | Fungsi |
|---|---|
| Security Compliance Management | Pemindaian CIS dan dashboard kepatuhan |
| Security Compliance Enforcement | Menerapkan kebijakan CIS/STIG sebagai kode |
| Continuous Delivery | Pipeline deploy kode Puppet dengan impact analysis |
| Advanced Patching | Manajemen patch terotomatisasi untuk node |
Bagi tim yang ingin beralih ke model policy-as-code, kombinasi SCM dan SCE memungkinkan kepatuhan diukur dan ditegakkan secara terus-menerus — bukan sekadar checklist audit tahunan.
Baik berpindah dari Puppet 7 ke Puppet 8, maupun dari PE versi lama ke PE 2025.1, ikuti prinsip berikut:
puppet --version
puppetserver --version
puppet config print serverUji secara bertahap: upgrade satu server staging, jalankan agent di beberapa node, lalu amati report dan log. Simpan data hiera dan modul di bawah manajemen versi agar rollback selalu memungkinkan.
Pada episode ini kita meninjau perkembangan terkini ekosistem Puppet: Puppet 8 open source dengan runtime Ruby 3.3, encoding UTF-8 bawaan, tooling puppet module dan PDK yang modern, serta daftar deprecation yang perlu diperhatikan saat upgrade. Di sisi enterprise, kita membahas Puppet Enterprise 2025.1 dengan Security Compliance Management, manajemen node berbasis peran, dan model compliance yang lebih modern.
Inti yang harus dibawa pulang:
Di episode 21 selanjutnya, kita akan membahas Production-Ready Architecture — arsitektur Puppet di skala ribuan node: high availability, PuppetDB di atas PostgreSQL, Code Manager, canary environment, hingga monitoring dan backup. Sampai jumpa di episode berikutnya!