Outils pour utilisateurs

Outils du site


pssh

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
pssh [2020/03/15 15:48] crustpssh [2020/03/15 16:42] – [Installer parallel-ssh] crust
Ligne 1: Ligne 1:
 ====== Installer parallel-ssh ====== ====== Installer parallel-ssh ======
 +    
 +**pssh** est un outil en ligne de commande pour exécuter **ssh** en parallèle sur plusieurs hôtes. Ses spécialités comprennent:
 +  *     Envoi de données à tous les clients
 +  *     Saisie unique d'un mot de passe pour ssh
 +  *     Enregistrement de la sortie dans des fichiers ou visionnage direct
 +  *     Automatisation des tâches **sysadmin** telles que l'application de correctifs aux serveurs, les mises à jour, l'installation de paquets, la configuration,...
 +  * Envoi de fichiers à tous les serveurs
 +  * Gestion des processus
 +  * Compatible avec tous les Linux, Unix et freeBSD
  
 +**Très utile puisque que sur un parc de PC, vous mettez à jour l'ensemble du parc depuis une seule machine.**
  
-parallel-ssh permet d'administrer un parc de PC via ssh en envoyant des reqûtes +====== Configurer les postes clients ======
-pssh is a command line tool for executing ssh in parallel on some hosts. It specialties includes:+
  
-    Sending input to all of the processes +Tâches à réaliser sur chaque clientEcrire un script d'automatisation afin d'alléger cette tâche. 
-    Inputting a password to ssh +===== Installer le paquet openssh-server ===== 
-    Saving output to files +<code bash># aptitude install openssh-server</code> 
-    IT/sysadmin task automation such as patching servers or looking for error logs +Chaque client possédera donc son propre serveur ssh.
-    Timing out and more +
-     +
-pssh est un outil en ligne de commande pour exécuter ssh en parallèle sur plusieurs hôtesSes spécialités comprennent: +
-  *     Envoi de données à tous les processus +
-  *     Saisie d'un mot de passe pour ssh +
-      Enregistrement de la sortie dans des fichiers +
-      Automatisation des tâches IT sysadmin telles que l'application de correctifs aux serveurs, de mise à jour, de configuration +
-  * Compatible avec tous les Linux, Unix et freeBSD+
  
 +===== configurer openssh-server =====
  
 +Configurer le serveur ssh pour qu'il accepte les connexions root et les autorisations par clefs et non mot de passe
 +<code bash># nano /etc/ssh/sshd_config</code>
 +Mettre à jour les lignes suivantes avec ces entrées
 +<code bash>
 +PermitRootLogin yes
 +PubkeyAuthentication yes</code>
 +
 +
 +Démarrer le service ssh ou le redémarrer
 +<code bash># service ssh start
 +# service ssh restart</code>
 +
 +Les clients sont prêts à l'emploi
 ====== Configuration de la machine maître ====== ====== Configuration de la machine maître ======
 ===== Installer pssh ===== ===== Installer pssh =====
Ligne 27: Ligne 42:
  
  
-Sous debian sid, l'utiliaire **pssh** s'appelle **parallel-ssh** (sous d'autres distributions c'est simplement **pssh**)+Sous debian sid, l'utiliaire **pssh** s'appelle **parallel-ssh** (sous d'autres distributions c'est simplement **pssh**)
 Ici nous utiliserons **parallel-ssh** par défaut (adapter à votre configuration) Ici nous utiliserons **parallel-ssh** par défaut (adapter à votre configuration)
  
Ligne 45: Ligne 61:
 ===== Le fichier de configuration du poste maître ===== ===== Le fichier de configuration du poste maître =====
  
-Ce fichier renferme la liste des hosts vers lesquels les commandes seront passées. Ici, nous les stockons dans  +Ce fichier renferme la liste des hosts vers lesquels les commandes seront envoyées. 
-**/etc/ssh/pssh_host** mais vous pouvez le mettre où vous le souhaitez.+ 
 +Ici, cette liste sera stockée dans  **/etc/ssh/pssh_host** mais vous pouvez créer un fichier de ce type où vous le souhaitez (souvent, le fichier **~/.pssh_hosts_files** est utilisé)
  
 Créer un fichier contenant les hosts Créer un fichier contenant les hosts
Ligne 55: Ligne 72:
 root@192.168.0.12 root@192.168.0.12
 root@192.168.0.23 root@192.168.0.23
-root@192.168.0.43</code>+root@192.168.0.43 
 +...</code>
  
 Si vous souhaitez utiliser les noms des machines plutôt que leurs adresses IP, il faudra modifier et adapter le fichier **/etc/hosts** Si vous souhaitez utiliser les noms des machines plutôt que leurs adresses IP, il faudra modifier et adapter le fichier **/etc/hosts**
  
- +===== Exporter la clef publique sur les clients =====
-====== Configurer les postes clients ====== +
-===== Installer le paquet openssh-server ===== +
-<code bash># aptitude install openssh-server</code> +
- +
-===== configurer openssh-server ===== +
- +
-Configurer le serveur ssh pour qu'il accepte les connexions root et les autorisations par clefs et non mot de passe +
-<code bash># nano /etc/ssh/sshd_config</code> +
-Mettre à jour les lignes suivantes avec ces entrées +
-<code bash> +
-PermitRootLogin yes +
-PubkeyAuthentication yes</code> +
- +
- +
-Démarrer le service ssh ou le redémarrer +
-<code bash># service ssh start +
-# service ssh restart</code> +
- +
-Les clients sont prêts à l'emploi +
- +
- +
-====== Exporter la clef publique sur les clients ======+
  
 <code bash>ssh-copy-id root@192.168.0.11 <code bash>ssh-copy-id root@192.168.0.11
 +ssh-copy-id root@192.168.0.12
 ssh-copy-id root@192.168.0.23 ssh-copy-id root@192.168.0.23
-ssh-copy-id root@192.168.0.43</code> +ssh-copy-id root@192.168.0.43 
-Autannt de fois que d'entrée dans votre fichier **/etc/ssh/pssh_host/pssh**+...</code> 
 +Autant de fois que d'entrées dans votre fichier **/etc/ssh/pssh_host/pssh**
  
 <code bash>$ ssh-copy-id root@192.168.0.43 <code bash>$ ssh-copy-id root@192.168.0.43
Ligne 109: Ligne 107:
 Utilisez **ssh-agent** pour vous authentifier automatiquement (avec un nom de shell comme argument pour que les variables d'environnement de l'agent soient définies dans ce nouveau shell). Ajoutez la clé avec **ssh-add** et tapez votre mot de passe __une seule fois__. Utilisez **ssh-agent** pour vous authentifier automatiquement (avec un nom de shell comme argument pour que les variables d'environnement de l'agent soient définies dans ce nouveau shell). Ajoutez la clé avec **ssh-add** et tapez votre mot de passe __une seule fois__.
  
-$ ssh-agent bash+<code bash>$ ssh-agent bash
 $ ssh-add $ ssh-add
-Enter passphrase for /xxxx/.ssh/identity: +Enter passphrase for /xxxx/.ssh/identity:</code>  
 + 
 +===== Utiliser parallel-ssh ===== 
 + 
 +==== Exemple, option -i ====
  
-===== Tester ===== 
  
 <code bash>$ parallel-ssh -i  -h /etc/ssh/pssh_host/pssh_hosts uname -a <code bash>$ parallel-ssh -i  -h /etc/ssh/pssh_host/pssh_hosts uname -a
Ligne 124: Ligne 125:
 On remarque ici **l'option -i** qui permet de visualiser ce que retourne le terminal ssh des postes clients On remarque ici **l'option -i** qui permet de visualiser ce que retourne le terminal ssh des postes clients
  
-**Redirection de la sortie ssh client vers un fichier** +==== Exemple, option -o ==== 
 + 
 +Pour **rediriger la sortie ssh des clients vers un fichier**, on utilisera l'**option -o**
  
 <code bash>$ parallel-ssh -o /tmp/uname  -h /etc/ssh/pssh_host/pssh_hosts uname -a <code bash>$ parallel-ssh -o /tmp/uname  -h /etc/ssh/pssh_host/pssh_hosts uname -a
 [1] 15:22:47 [SUCCESS] root@192.168.0.11 [1] 15:22:47 [SUCCESS] root@192.168.0.11
-[2] 15:22:48 [SUCCESS] root@192.168.0.43 +[2] 15:22:48 [SUCCESS] root@192.168.0.43</code> 
-$ cat /tmp/uname/root@192.168.0.11 /tmp/uname/root@192.168.0.43 + 
 +Et pour visualiser les sorties. 
 + 
 +<code>$ cat /tmp/uname/root@192.168.0.11 /tmp/uname/root@192.168.0.43 
 FreeBSD asgard-freeBSD 12.0-RELEASE-p13 FreeBSD 12.0-RELEASE-p13 GENERIC  amd64 FreeBSD asgard-freeBSD 12.0-RELEASE-p13 FreeBSD 12.0-RELEASE-p13 GENERIC  amd64
 Linux Tinuviel-debianStable 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/Linux</code> Linux Tinuviel-debianStable 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/Linux</code>
  
 +==== Exemple, mise à jour à distance ====
 +
 +<code bash>$ parallel-ssh -i  -h /etc/ssh/pssh_host/pssh_hosts apt-get update
 +$ parallel-ssh -i  -h /etc/ssh/pssh_host/pssh_hosts apt-get upgrade</code>
 +
 +===== Copier des fichiers vers les clients =====
 +
 +
 +__Syntaxe__
 +
 +<code bash>$ parallel-scp -h /fichier_de_conf_pssh source destinatire</code>
 +
 +__Exemple__
 +
 +<code bash>$ parallel-scp  -h /etc/ssh/pssh_host/pssh_hosts  $HOME/test.txt /tmp/</code>
 +
 +Tuer des processus sur les postes clients
  
 +__Syntaxe__
 +<code bash>$ parallel-nuke -h /fichier_de_conf_pssh nom_du_processus</code>
  
 +__Exemple__
 +<code bash>$ parallel-nuke  -h /etc/ssh/pssh_host/pssh_hosts  nginx</code>
pssh.txt · Dernière modification : 2020/09/03 18:58 de cyrille