Rabu, 11 Januari 2023

Multi Thread SSH Command for Manage Cluster Server


Ok, kali ini aku ingin sharing terkait pekerjaan ku sebagai “System Administrator”, sudah pasti kerjaan nya bermain dengan server, dan tidak hanya satu server.

**Ilustrasi ruang server, 

Sometimes, aku melakukan configure suatu services/daemon di beberapa server sekaligus, walapun command nya copy-paste,  Tapi tetep memerlukan waktu sebab harus login SSH ke satu-persatu server, melahkan bukan kan ?  Belum lagi saat kita lupa, Sudah sampai di server ke-berapa yang sudah kita config.

Bedasarkan kasus tersebut, aku coba belajar lagi lebih dalam terntang bash, dan menghasilkan hal berikut yang dapat mempersingkat waktu & pekerjaan untuk memanage banyak server, satu command dapat efek semua server :

**check services di semua server

**Check version Java, di semua server

**Check Services SELinux

**Check IP Address semua server

Dan bisa juga untuk copy file menggunakan scp (Secure Copy)  ke semua server sekaligus, dengan satu command saja.

**Copy testfile ke semua server

Satu command, bisa remote semua server sekaligus, Ajaib..kan!

Ok, Bagaimana caranya ?

Kuncinya ada di ssh authorized_keys & file server.txt

ssh authorized_keys di pakai agar login ke server tujuan tampa perlu input password lagi, tutorial nya banyak di google “How to Set Up SSH Passwordless” .

lalu file server.txt, ini berisi alamat server yang digunakan untuk scripting bash symbol i menjadi {i} untuk input alamat server pada command ssh.

** ini contoh isi dari dalam file tersebut.

Ok, kita bahas dikit command nya.

# for i in `cat server.txt`; do ssh root@${i} "Try Linux command"; done

Jad command ini akan membaca isi dari file “server.txt” lalu membaca setiap isi dari alamat IP server pada file tersebut, kemudian melakukan ssh ke user root dengan alamat {i} yang diambil dari dalam file tersebut. Kurang lebih begitu penjelasan nya.

Contoh beberapa command yang sering dipakai oleh banyak orang :

Check status SELinux
# for i in `cat server.txt`; do ssh root@${i} "hostname  && sestatus"; done

Check IP Address
# for i in `cat server.txt`; do ssh root@${i} "hostname  && ip a | grep inet"; done

Installasi Package
# for i in `cat server.txt`; do ssh root@${i} "yum -y install java-1.8.0-openjdk*"; done

Lalu kita juga bisa melakukan scp / copy file ke semua server

# for i in `cat server.txt`; do scp TestFile root@${i}:TestFile; done
# for i in `cat server.txt`; do scp /Folder/TestFile root@${i}:/Folder/TestFile; done


Selebihnya mungkin kalian bisa kembangkan sendiri.. sesuai dengan kebutuhan kalian,

Ok, sekian catatan kali ini. Terima Kasih.

 

Share:
Dki Jakarta,Indonesia Indonesia