Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| pssh [2020/03/15 15:05] – [Installer parallel-ssh] crust | pssh [2020/09/03 16:58] (Version actuelle) – [configurer openssh-server] cyrille | ||
|---|---|---|---|
| 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: | + | **pssh** est un outil en ligne de commande pour exécuter |
| * Envoi de données à tous les clients | * Envoi de données à tous les clients | ||
| * | * | ||
| - | * | + | * |
| - | * | + | * |
| + | * Envoi de fichiers à tous les serveurs | ||
| + | * Gestion des processus | ||
| * Compatible avec tous les Linux, Unix et freeBSD | * Compatible avec tous les Linux, Unix et freeBSD | ||
| + | |||
| + | **Très utile puisque que sur un parc de PC, vous mettez à jour l' | ||
| ====== Configurer les postes clients ====== | ====== Configurer les postes clients ====== | ||
| + | |||
| + | Tâches à réaliser sur chaque client. Ecrire un script d' | ||
| ===== Installer le paquet openssh-server ===== | ===== Installer le paquet openssh-server ===== | ||
| <code bash># aptitude install openssh-server</ | <code bash># aptitude install openssh-server</ | ||
| + | Chaque client possédera donc son propre serveur ssh. | ||
| ===== configurer openssh-server ===== | ===== configurer openssh-server ===== | ||
| Ligne 18: | Ligne 25: | ||
| Mettre à jour les lignes suivantes avec ces entrées | Mettre à jour les lignes suivantes avec ces entrées | ||
| <code bash> | <code bash> | ||
| - | PermitRootLogin | + | Prohibit-password |
| PubkeyAuthentication yes</ | PubkeyAuthentication yes</ | ||
| Ligne 35: | Ligne 42: | ||
| - | Sous debian sid, l' | + | Sous debian sid, l' |
| Ici nous utiliserons **parallel-ssh** par défaut (adapter à votre configuration) | Ici nous utiliserons **parallel-ssh** par défaut (adapter à votre configuration) | ||
| Ligne 53: | 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 | + | Ce fichier renferme la liste des hosts vers lesquels les commandes seront |
| - | **/ | + | |
| + | Ici, cette liste sera stockée | ||
| Créer un fichier contenant les hosts | Créer un fichier contenant les hosts | ||
| Ligne 63: | 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</ | + | root@192.168.0.43 |
| + | ...</ | ||
| Si vous souhaitez utiliser les noms des machines plutôt que leurs adresses IP, il faudra modifier et adapter le fichier **/ | Si vous souhaitez utiliser les noms des machines plutôt que leurs adresses IP, il faudra modifier et adapter le fichier **/ | ||
| Ligne 70: | Ligne 80: | ||
| <code bash> | <code bash> | ||
| + | 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</ | + | ssh-copy-id root@192.168.0.43 |
| - | Autant de fois que d'entrée | + | ...</ |
| + | Autant de fois que d'entrées | ||
| <code bash>$ ssh-copy-id root@192.168.0.43 | <code bash>$ ssh-copy-id root@192.168.0.43 | ||
| Ligne 95: | Ligne 107: | ||
| Utilisez **ssh-agent** pour vous authentifier automatiquement (avec un nom de shell comme argument pour que les variables d' | Utilisez **ssh-agent** pour vous authentifier automatiquement (avec un nom de shell comme argument pour que les variables d' | ||
| - | $ ssh-agent bash | + | <code bash>$ ssh-agent bash |
| $ ssh-add | $ ssh-add | ||
| - | Enter passphrase for / | + | Enter passphrase for / |
| ===== Utiliser parallel-ssh ===== | ===== Utiliser parallel-ssh ===== | ||
| + | |||
| + | ==== Exemple, option -i ==== | ||
| + | |||
| <code bash>$ parallel-ssh -i -h / | <code bash>$ parallel-ssh -i -h / | ||
| Ligne 109: | Ligne 124: | ||
| On remarque ici **l' | On remarque ici **l' | ||
| + | |||
| + | ==== Exemple, option -o ==== | ||
| Pour **rediriger la sortie ssh des clients vers un fichier**, on utilisera l' | Pour **rediriger la sortie ssh des clients vers un fichier**, on utilisera l' | ||
| Ligne 114: | Ligne 131: | ||
| <code bash>$ parallel-ssh -o / | <code bash>$ parallel-ssh -o / | ||
| [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</ |
| - | $ cat / | + | |
| + | Et pour visualiser les sorties. | ||
| + | |||
| + | < | ||
| FreeBSD asgard-freeBSD 12.0-RELEASE-p13 FreeBSD 12.0-RELEASE-p13 GENERIC | FreeBSD asgard-freeBSD 12.0-RELEASE-p13 FreeBSD 12.0-RELEASE-p13 GENERIC | ||
| Linux Tinuviel-debianStable 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/ | Linux Tinuviel-debianStable 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/ | ||
| + | |||
| + | ==== Exemple, mise à jour à distance ==== | ||
| + | |||
| + | <code bash>$ parallel-ssh -i -h / | ||
| + | $ parallel-ssh -i -h / | ||
| ===== Copier des fichiers vers les clients ===== | ===== Copier des fichiers vers les clients ===== | ||
| - | <code bash> | + | __Syntaxe__ |
| <code bash>$ parallel-scp -h / | <code bash>$ parallel-scp -h / | ||