- 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
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
Namanya mencurigakan!
Saya sangat setuju 🤣