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:58] – [Tester] crust | pssh [2020/09/03 18: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 processus | + | * 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 / |