{{tag>Brouillon}} # Notes cluster shell parallèle * clustershell (clush) * clusterssh (cssh) * mussh ## clush ~~~bash apt-get install clustershell # ou pip install --user ClusterShell ~~~ `/etc/clustershell/groups` ~~~ all: host1 host2 ~~~ **-a** pour "all"\\ **-B** pour affichage groupé de STDOUT et STDERR si retour identique ~~~bash clush -a -B ~~~ ~~~bash clush -w lame[1-4] -B ~~~ ~~~bash clush -w lame[1-6] --diff dmidecode -s bios-version ~~~ ~~~ --- lame[1-4] (4) +++ lame[5-6] (2) @@ -1 +1 @@ -I36 +I15 ~~~ ### Clush copy Exemple SosRepport ### Exemple Génération du sosreport sur les cibles ~~~bash clush -B -O ssh_options='-oStrictHostKeyChecking=no -oPort=2222' -l root --hostfile targets.lst sosreport -q --case-id 000000 --since 20230813000000 --batch ~~~ Récupération des sosreports ~~~bash mkdir sosreports clush -B -O ssh_options='-oStrictHostKeyChecking=no -oPort=2222' -l root --hostfile targets.lst --rcopy '/var/tmp/sosreport-*.tar.xz' --dest sosreports/ clush -B -O ssh_options='-oStrictHostKeyChecking=no -oPort=2222' -l root --hostfile targets.lst --rcopy '/var/tmp/sosreport-*.tar.xz.sha256' --dest sosreports/ ~~~ Renommage ~~~bash cd sosreports/ # rename -nv '*' ` * rename '*' ` * rename '-' ` * ~~~ Nettoyage ~~~bash clush -B -O ssh_options='-oStrictHostKeyChecking=no -oPort=2222' -l root --hostfile targets.lst rm -f /var/tmp/sosrepor* ~~~ ### List ~~~bash clush -B --hostfile=hosts.lst ~~~ ~~~bash clush -B -O ssh_options='-oStrictHostKeyChecking=no -oPort=2222' -l admin --hostfile hosts.lst ~~~ ### Groupes ~~~bash mkdir ~/.config/clustershell/ cp /etc/clustershell/groups.conf ~/.config/clustershell/ ~~~ `~/.config/clustershell/groups.d/plop.yaml` ~~~yaml plop: www: 'www[1-4]' db: 'db-alpha,db-beta' ~~~ ~~~bash clush -B -g plop:www clush -B -g plop:* ~~~ ## mussh ~~~bash mussh -H list.txt -b -c 'uptime' ~~~ ~~~bash mussh -H list.txt -b -C script.sh ~~~ ~~~bash mussh -m 7 -H ~/dev/list.txt -b -c 'apt-get -s dist-upgrade | grep "^[[:digit:]]\+ upgraded"' ~~~ ## ClusterSSH cssh ~~~bash sudo apt-get install clusterssh ~~~ ~~~bash cssh c2-bl1 c2-bl2 c2-bl3 c2-bl4 c2-bl5 c2-bl6 ~~~ ## sshpass ~~~bash read -s SSHPASS ; export SSHPASS for ip in $(cat ip_all.lst) ; do sshpass -e ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 $ip /bin/true && echo $ip >> ip_ok.lst || echo $ip >> ip_nok.lst ;done for ip in $(cat ip_ok.lst) ; do sshpass -e ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 $ip grep 192.168.1.253 /etc/resolv.conf && echo $ip >> dns_ok.lst || echo $ip >> dns_nok.lst ;done ~~~