Belajar Puppet - Puppet Enterprise (Console & Orchestration)
Episode 10 of 23

Belajar Puppet - Puppet Enterprise (Console & Orchestration)

Di episode ini kita mengenal Puppet Enterprise: Console untuk manajemen node, node groups dan classifier, RBAC, reporting dan status run, serta menjalankan Puppet Tasks dan Plans untuk aksi ad-hoc ter-orchestrasi.

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

Pendahuluan

Di episode 9 kalian sudah mengenal PuppetDB sebagai sumber kebenaran data run. Puppet open source memang kuat, tetapi menangani ratusan node hanya lewat CLI akan melelahkan. Di episode 10 kita melihat produk lengkapnya: Puppet Enterprise (PE), yang menggabungkan puppetserver, PuppetDB, dan seluruh layanan pendukungnya di bawah satu atap dengan Console sebagai pusat kendali grafis.

PE menambahkan tiga hal besar di atas Puppet open source: node classifier dengan node groups, RBAC untuk keamanan multi-user, dan orchestration untuk menjalankan task serta plan secara massal.

Komponen Puppet Enterprise

PE bukan satu binary besar, melainkan kumpulan layanan yang saling terhubung:

LayananPeran
Puppet ServerMengkompilasi catalog dan menyajikan API
PuppetDBMenyimpan facts, catalog, dan reports
PE ConsoleUI web untuk klasifikasi, RBAC, dan reporting
PE OrchestratorMenjalankan task dan plan ke banyak node
Code ManagerDeploy kode dari git ke environment
Certificate AuthorityMenandatangani sertifikat agent

Semua layanan ini diinstall dengan satu installer. Setelah selesai, kalian membuka Console di https://<pe-console-host>:4433/console, lalu login dengan akun admin yang dibuat saat instalasi.

Note

Port 4433 dipakai Console dan API RBAC, sedangkan puppetserver mendengarkan di 8140 dan PuppetDB di 8081. Pastikan port-port ini terbuka hanya untuk jaringan yang tepat.

Manajemen Node dan Classifier

Di Console, daftar node menampilkan semua node yang check-in, lengkap dengan environment, grup, dan status run terakhirnya. Node bisa di-klasifikasi dengan dua cara: dipin secara manual ke sebuah node group, atau dipilih lewat rule.

Node groups adalah wadah klasifikasi yang bisa disusun bertingkat. Grup anak mewarisi class dari grup induk. Rule menentukan node mana yang masuk otomatis berdasarkan facts atau certname:

Rule classification node group 'web nodes'
{
  "rule": [
    "and",
    [ "=", "facts.os.family", "RedHat" ],
    [ "~", "certname", "^web\\d+\\.example\\.com$" ]
  ]
}

Rule di atas memasukkan semua node RedHat dengan certname berawalan web diikuti angka. Saat agent baru check-in dan facts-nya cocok, ia langsung masuk grup — tanpa pin manual.

Di dalam node group, kalian juga bisa menetapkan environment dan data Hiera langsung dari Console, sehingga kombinasi class + data per grup tersimpan terpusat.

Tip

Susun node groups berjenjang seperti role/profile: grup All nodes berisi class dasar, lalu grup web nodes menambah class web. Perubahan di level atas otomatis mengalir ke anaknya.

RBAC: Keamanan Multi-User

RBAC (Role-Based Access Control) mengatur siapa bisa melihat dan mengubah apa. Komponennya:

  • Users — akun lokal atau terhubung ke LDAP/AD.
  • User groups — mengelompokkan users.
  • Roles — kumpulan permission, misalnya operator, read-only, atau admin.
  • Permissions — aksi spesifik seperti mengubah node groups, menjalankan task, atau membaca reports.

Seorang user yang login ke Console tidak langsung punya akses penuh — akses diberikan lewat role yang melekat ke user group. Ini memungkinkan tim ops mengelola konfigurasi sementara auditor hanya bisa membaca.

Untuk automation, RBAC mengeluarkan token API yang bisa dipakai script:

Login dan ambil token API PE
puppet access login --lifetime 1d \
  --service-url https://pe-console.example.com:4433/rbac-api/v1
puppet access show

Important

Token RBAC bersifat rahasia seperti password. Set masa berlaku pendek, simpan di secret manager, dan jangan pernah menaruhnya di repository. Gunakan token yang berbeda untuk tiap alat atau script.

Reporting dan Status Run

Halaman Reports menampilkan hasil setiap run dari semua node: berapa resource yang changed, failed, skipped, dan yang sudah sesuai (unchanged). Detail per resource menunjukkan perubahan properti mana yang dilakukan, lengkap dengan sebelum dan sesudahnya.

Status run node adalah lampu kesehatan infra:

StatusMakna
SuccessRun selesai tanpa kegagalan resource
FailedAda resource yang gagal diterapkan
UnreportedNode tidak check-in dalam waktu lama
PendingRun dijadwalkan tapi belum tiba

Kombinasi status run, time stamp report, dan facts di PuppetDB adalah triase pertama saat ada insiden: lihat node mana yang gagal, kapan terakhir check-in, dan resource mana yang bermasalah.

Puppet Tasks dan Plans

PE membawa kemampuan push yang tidak ada di agent pull-based. Tasks adalah skrip yang dijalankan sekali ke banyak node, sedangkan Plans adalah rangkaian langkah orkestrasi yang bisa memanggil task, command, bahkan logic percabangan.

Task paling sederhana berupa skrip dengan metadata:

tasks/restart_nginx.sh
#!/bin/bash
systemctl restart nginx
tasks/restart_nginx/metadata.json
{
  "description": "Restart layanan nginx",
  "input_method": "stdin",
  "parameters": {
    "version": {
      "type": "Optional[String[1]]",
      "description": "Versi yang ingin dilaporkan"
    }
  }
}

Plan menggabungkan beberapa langkah dalam satu eksekusi:

plans/rolling_update.pp
plan deploy::rolling_update(
  TargetSpec $targets,
  String[1] $version,
) {
  $batches = $targets.slice(2)
  $batches.each |$batch| {
    run_task('deploy::stop', $batch)
    run_task('deploy::start', $batch, version => $version)
    run_command('sleep 5', $batch)
  }
}

Dari Console, halaman Tasks dan Plans memungkinkan memilih node target dengan filter, lalu menjalankan task atau plan dengan parameter — semua tanpa menulis manifest. Hasil setiap target ditampilkan langsung di UI.

Warning

Tasks dan Plans menjalankan kode dengan hak akses node. Tetapkan permission RBAC khusus untuk task, dan uji task di satu node sebelum melepas ke seluruh fleet.

Penutup

Puppet Enterprise memoles Puppet open source menjadi platform terpusat yang siap dipakai tim.

  • Console menyatukan klasifikasi, RBAC, reporting, dan orchestration dalam satu UI.
  • Node groups dan rule classifier mengotomatiskan siapa mendapat konfigurasi apa.
  • RBAC mengamankan akses multi-user dengan users, groups, dan roles.
  • Reporting dan status run adalah deteksi dini kesehatan infrastruktur.
  • Tasks dan Plans menambahkan kekuatan push di samping model pull agent.

Kekuatan push itu sebenarnya berasal dari sebuah tool yang juga berdiri sendiri — di episode 11 kalian akan mempelajari Bolt & Orchestration: menjalankan bolt task run dan plan ke target lewat SSH dan WinRM, menyusun inventory.yaml, serta menggabungkan Bolt untuk aksi push dengan Puppet agent untuk konfigurasi pull. Sampai jumpa!

Belajar Puppet - Puppet Enterprise (Console & Orchestration) | Belajar Puppet