5 poin oleh xguru 2025-04-22 | 2 komentar | Bagikan ke WhatsApp
  • Alat CLI yang memungkinkan eksekusi perintah secara serentak di banyak server melalui sesi SSH paralel
  • Mendukung mulai dari penggunaan sederhana hingga kontrol input/output lanjutan, dan berguna untuk mengelola klaster server

Fitur dasar

  • Menjalankan perintah di beberapa host sekaligus, dengan nama host ditampilkan sebagai prefiks output
    • Contoh: pussh -h host1,host2 uname -a
  • Daftar host dapat diberikan dari file atau input standar
    • Contoh: pussh -f servers uname -a atau fetch-servers | pussh -f - uname -a
  • Output dapat disambungkan ke pipeline untuk diurutkan atau difilter
    • Contoh: urutkan berdasarkan penggunaan disk → pussh -f servers df -h / | grep /dev | sort -rn -k5
  • Output tiap host dapat disimpan ke file terpisah (%h adalah placeholder nama host)
    • Contoh: pussh -f servers -o %h-hw.txt lshw
  • Hasil output SSH dapat diproses melalui pipe ke perintah lain
    • Contoh: pussh -f servers -o '|grep feature' command > output

Fitur kontrol input

  • Saat menjalankan perintah, input dapat diberikan dari file atau output perintah
    • Contoh: pussh -f servers -i file command
    • Contoh: file input per host → pussh -f servers -i %h.data command
    • Contoh: input dinamis → pussh -f servers -i 'get-data %h|' command
  • -i dan -o dapat dikombinasikan secara bebas

Fitur deployment dan eksekusi

  • Perintah atau skrip dapat dikirim dan dijalankan dari jarak jauh
    • Contoh: pussh -f servers -u my-deploy.sh args ...
    • Namun, file eksekusi harus dalam format self-contained atau kompatibel dengan lingkungan server target

Tips optimasi performa

  • Kecepatan pembentukan koneksi SSH sangat memengaruhi total waktu eksekusi
  • Jika melampaui batas kecepatan pemrosesan SSH agent, autentikasi bisa gagal atau terjadi error koneksi
  • Rekomendasi: gunakan dengan menetapkan rate eksekusi (misalnya alias pussh='pussh -r 50')
  • Karena latensi jaringan sangat berpengaruh, lebih cepat jika login via ssh ke mesin LAN jarak jauh lalu menjalankan pussh dari mesin tersebut
    • Contoh benchmark (berdasarkan Gigabit LAN):
      $ time pussh -f servers -r 100 date  
      Total: 201 host(s), 4 second(s)  
      
      real    0m4.069s  
      user    0m7.132s  
      sys     0m3.140s  
      

Pengembangan dan riwayat

  • Alat yang telah digunakan secara internal di Bearstech sejak 2008
  • Awalnya hanya beberapa baris skrip shell, dan kini berjalan stabil bahkan pada klaster dengan lebih dari 500 server
  • Terintegrasi dengan sistem manajemen cloud untuk menghasilkan daftar host yang bisa dieksekusi dari deskripsi host yang sederhana

Keterbatasan

  • stdout dan stderr dari server jarak jauh tidak dipisahkan, melainkan digabung dan ditampilkan sebagai satu stream
  • Tidak dapat mengambil status keluar (exit status) dari perintah yang dijalankan di server jarak jauh

2 komentar

 
ahwjdekf 2025-04-24

Namanya mencurigakan!

 
nemorize 2025-04-25

Saya sangat setuju 🤣