4 alat untuk mengeksekusi perintah pada beberapa server Linux secara bersamaan

Artikel, terjemahan yang kami terbitkan hari ini, dikhususkan untuk teknologi eksekusi perintah secara simultan di beberapa server Linux. Di sini kita akan berbicara tentang beberapa alat terkenal yang mengimplementasikan fungsi tersebut. Materi ini bermanfaat bagi administrator sistem yang, misalnya, secara teratur harus memeriksa status banyak sistem jarak jauh. Diasumsikan bahwa pembaca sudah memiliki beberapa server yang mengatur akses SSH. Selain itu, saat bekerja dengan beberapa mesin secara bersamaan, sangat berguna untuk mengkonfigurasi akses SSH ke mereka dengan kunci, tanpa kata sandi . Pendekatan ini, di satu sisi, meningkatkan keamanan server, dan di sisi lain, membuatnya lebih mudah untuk dikerjakan.



1. PSSH - SSH Paralel


PSSH adalah toolkit baris perintah open source yang ditulis dengan Python dan dirancang untuk menjalankan perintah SSH secara paralel pada banyak sistem Linux. Ini bekerja dengan cepat dan mudah dipelajari. PSSH termasuk alat-alat seperti parallel-ssh , parallel-scp , parallel-rsync , parallel-slurp dan parallel-nuke (untuk perincian tentang alat-alat ini, lihat man).

Sebelum menginstal parallel-ssh pada sistem Linux, Anda harus menginstal pip terlebih dahulu. Inilah cara melakukannya dalam distribusi yang berbeda:

 $ sudo apt install python-pip python-setuptools   #Debian/Ubuntu # yum install python-pip python-setuptools        #RHEL/CentOS # dnf install python-pip python-setuptools        #Fedora 22+ 

Kemudian parallel-ssh diinstal menggunakan pip :

 $ sudo pip install parallel-ssh 

Selanjutnya, Anda harus memasukkan nama host atau alamat IP dari server Linux jarak jauh dan informasi port di hosts (pada kenyataannya, Anda dapat menamainya apa saja). Di sini kita membutuhkan perintah ini:

 $ vim hosts 

Berikut adalah contoh isi dari file tersebut:

 192.168.0.10:22 192.168.0.11:22 192.168.0.12:22 

Setelah semua yang diperlukan telah dimasukkan ke dalam file, sekarang saatnya untuk menjalankan parallel-ssh , melewati utilitas ini nama file menggunakan opsi -h , serta perintah yang perlu dijalankan pada semua server yang alamatnya ada di hosts . Bendera -i utilitas digunakan untuk menampilkan apa yang masuk ke keluaran standar dan aliran kesalahan setelah penyelesaian perintah di server.

Perintah peluncuran parallel-ssh mungkin terlihat seperti ini:

 $ parallel-ssh -h hosts "uptime; df -h" 

Gambar berikut menunjukkan penggunaan utilitas saat bekerja dengan tiga server.


Utilitas paralel-ssh menjalankan perintah pada beberapa server

2. Pdsh - Utilitas Shell Jarak Jauh Paralel


Pdsh, sekali lagi, solusi open source, yang merupakan shell untuk mengeksekusi perintah pada beberapa server Linux secara bersamaan.

Berikut cara memasang pdsh di berbagai distribusi:

 $ sudo apt install pdsh         #Debian/Ubuntu # yum install pdsh              #RHEL/CentOS # dnf install pdsh              #Fedora 22+ 

Untuk menjalankan perintah pada beberapa server, alamat server ini, seperti dengan parallel-ssh , harus ditambahkan ke file, yang juga bisa disebut hosts . Maka Anda perlu menjalankan pdsh dalam bentuk berikut:

 $ pdsh -w ^hosts -R ssh "uptime; df -h" 

Di sini, flag -w digunakan untuk menunjukkan file dengan daftar server, flag -R digunakan untuk menunjukkan modul perintah jarak jauh (di antara modul perintah jarak jauh yang tersedia adalah ssh , rsh , exec ; rsh digunakan secara default). Perhatikan ikon ^ di depan nama file daftar server.

Seperti apa bentuk kerja tim ini.


Menjalankan perintah di beberapa server menggunakan pdsh

Jika, ketika Anda memanggil pdsh , Anda tidak menentukan daftar perintah yang perlu dijalankan di server, utilitas ini akan mulai dalam mode interaktif. Rincian tentang pdsh dapat ditemukan di halaman manual yang sesuai.

3. ClusterSSH


ClusterSSH adalah alat baris perintah untuk mengelola cluster server. Ini meluncurkan konsol admin dan, untuk setiap server, jendela xterm terpisah. Setelah itu, semua server ini dapat menjalankan perintah yang sama secara bersamaan.

Instal clusterssh :

 $ sudo apt install clusterssh    #Debian/Ubuntu # yum install clusterssh         #RHEL/CentOS $ sudo dnf install clusterssh    #Fedora 22+ 

Sekarang, untuk terhubung ke server, Anda perlu menjalankan perintah dari formulir berikut:

 $ clusterssh linode cserver contabo 

Anda dapat menggunakan desain ini:

 $ clusterssh username@server1 username@server2 username@server3 

Setelah itu, Anda akan melihat sesuatu yang mirip dengan yang ditunjukkan pada gambar berikut.


Bekerja dengan beberapa server menggunakan clusterssh

Perintah yang dimasukkan dalam konsol administrator dieksekusi di semua server. Untuk menjalankan perintah pada server terpisah, Anda harus memasukkannya di jendela yang terbuka untuknya.

4. mungkin


Ansible adalah alat open source yang populer untuk mengotomatisasi proses TI. Ini digunakan untuk mengkonfigurasi dan mengelola sistem, untuk menginstal aplikasi, dan untuk memecahkan masalah lainnya.

Instal yang ansible :

 $ sudo apt install ansible       #Debian/Ubuntu # yum install ansible            #RHEL/CentOS $ sudo dnf install ansible       #Fedora 22+ 

Setelah itu, tambahkan alamat server ke file /etc/ansible/hosts .

 $ sudo vim /etc/ansible/hosts 

Berikut adalah contoh fragmen file yang serupa dengan beberapa sistem yang disatukan dalam grup webservers :

 # Ex 2: A collection of hosts belonging to the 'webservers' group [webservers] 139.10.100.147 139.20.40.90 192.30.152.186 

Sekarang, untuk mendapatkan informasi perintah uptime dan mencari tahu pengguna mana yang terhubung ke host yang termasuk dalam grup webservers , Anda dapat menggunakan konstruksi berikut:

 $ ansible webservers -a "w " -u admin 

Di sini, opsi -a digunakan untuk menentukan argumen yang diteruskan ke modul, dan flag -u memungkinkan Anda untuk menentukan nama pengguna default yang digunakan untuk terhubung ke server jauh melalui SSH.

Harap perhatikan bahwa ansible baris perintah yang memungkinkan memungkinkan ansible untuk mengeksekusi perintah hanya satu per satu.


Interaksi dengan beberapa server menggunakan alat yang memungkinkan

Ringkasan


Pada artikel ini, kita berbicara tentang alat-alat yang dirancang untuk secara bersamaan menjalankan perintah pada beberapa server yang menjalankan Linux. Jika Anda berpikir untuk mengotomatiskan tugas mengelola beberapa server, kami harap Anda menemukan sesuatu yang cocok untuk Anda di sini.

Pembaca yang budiman! Apakah Anda tahu ada utilitas yang berguna yang menyederhanakan administrasi sejumlah besar server?

Source: https://habr.com/ru/post/id426849/


All Articles