[10] Paralel SSH / Równoległe SSH

24 maja 2020 Wyłączono przez Adam [zicherka] Nogły

Można skorzystać z MPSSH (Mass Parallel Secure Shell), aby podłączyć się jednocześnie do kilku hostów za pomocą SSH.

[1] Instalujemy MPSSH.

# instalujemy z EPEL
[root@lsr01vm ~]# dnf --enablerepo=epel install mpssh

[2] Podstawy MPSSH.

MPSSH wymaga autentykacji za pomocą pary kluczy bez haseł, lub jeśli klucze hasła posiadają to wpisanie ich za pomocą SSH-Agent’a.

# napiszmy plik z hostami, z którymi chcemy się łączyć
[paralell@lsr01vm ~]$ mcedit ssh_targets

192.168.1.3
192.168.1.4

# uruchomimy komendę [uname] na docelowych hostach
[paralell@lsr01vm ~]$ mpssh -f ssh_targets "uname -a"
MPSSH - Mass Parallel Ssh Ver.1.3.3
(c)2005-2013 Nikolay Denev <ndenev@gmail.com>

[*] read (2) hosts from the list
[*] executing "uname -a" as user "paralell"
[*] spawning 2 parallel ssh sessions

192.168.1.3 -> Linux lsr02vm.zicher.lab 4.18.0-147.8.1.el8_1.x86_64 #1 SMP Thu Apr 9 13:49:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
192.168.1.4 -> Linux lsr03vm.zicher.lab 4.18.0-147.8.1.el8_1.x86_64 #1 SMP Thu Apr 9 13:49:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

  Done. 2 hosts processed.

# a teraz wyniki zapiszemy do pliku osobnego dla każdego hosta
[paralell@lsr01vm ~]$ mpssh -b -o ./output -f ssh_targets "cat /etc/passwd"
MPSSH - Mass Parallel Ssh Ver.1.3.3
(c)2005-2013 Nikolay Denev <ndenev@gmail.com>

[*] read (2) hosts from the list
[*] executing "cat /etc/passwd" as user "paralell"
[*] blind mode enabled
[*] creating output directory : ./output
[*] spawning 2 parallel ssh sessions


Done. 2 hosts processed.
[paralell@lsr01vm ~]$ ll ./output
razem 8
-rw-r--r--. 1 paralell paralell 1502 05-24 18:41 paralell@192.168.1.3.out
-rw-r--r--. 1 paralell paralell 1502 05-24 18:41 paralell@192.168.1.4.out

# no i sprawdzimy co w nich jest ;-)
[paralell@lsr01vm ~]$ cat ./output/paralell\@192.168.1.3.out
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
...
...

[paralell@lsr01vm ~]$ cat ./output/paralell\@192.168.1.4.out
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
...
...