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édentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
pssh [Le 17/03/2020, 19:37]
moths-art ajout de tags
pssh [Le 23/03/2020, 06:45]
Fabux Modif tag
Ligne 1: Ligne 1:
-{{tag>​ssh ​déploiement ​}}+{{tag>administration serveur ​ssh}}
 ---- ----
 ====== PSSH (parallel-ssh) ====== ====== PSSH (parallel-ssh) ======
Ligne 12: Ligne 12:
   * 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'​ensemble du parc depuis une seule machine.**+Ce logiciel est très utile sur un parc de PC, puisque ​vous mettez à jour l'​ensemble du parc depuis une seule machine.
  
 ====== Configurer les postes clients ====== ====== Configurer les postes clients ======
 +<note tip>Il est possible d'​écrire un script d'​automatisation afin d'​alléger cette tâche.</​note>​
 +Sur chaque postes clients il s'​agira de : 
  
-Tâches à réaliser sur chaque client. Ecrire un script d'​automatisation afin d'​alléger cette tâche. +  * [[:​tutoriel:​comment_installer_un_paquet|Installez]] ​le **[[:ssh?#installation_du_serveur_ssh|serveur SSH]]**. ​Chaque client possédera donc son propre serveur ssh. 
-===== Installer ​le paquet openssh-server ===== +  ​* ​Configurer ​ces serveurs ​ssh pour qu'il accepte les connexions root et les autorisations par clefs et non mot de passe : 
-<code bash>aptitude install openssh-server</​code>​ +     * avec les [[:​sudo|droits d'​administration]],​ [[:​tutoriel:​comment_modifier_un_fichier|modifiez le fichier]] **/​etc/​ssh/​sshd_config** pour mettre ​à jour les lignes suivantes avec ces entrées ​<file bash>
-Chaque client possédera donc son propre serveur ssh. +
- +
-===== 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 PermitRootLogin yes
-PubkeyAuthentication yes</​code>​+PubkeyAuthentication yes</​file>​ 
 +  * Démarrer ou redémarrer le [[:​services|service]] ssh. Il faut généralement les droits administrateur. 
 +    * Par exemple <code bash>​sudo service ssh start</​code>​ ou <​code>​sudo service ssh restart</​code>​
  
 +Les clients sont prêts à l'​emploi
  
-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 =====
  
 +[[:​tutoriel:​comment_installer_un_paquet|Installez]] [[apt>​pssh]]
    
-<code bash># aptitude install pssh</​code>​ 
 ===== pssh / parallel-ssh ===== ===== pssh / parallel-ssh =====
- 
  
 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**).
Ligne 51: Ligne 42:
  
 Construire sa clef , sauf si on en a déjà une (compte $USER, non en root) Construire sa clef , sauf si on en a déjà une (compte $USER, non en root)
-<code bash>ssh-keygen +<code bash>​ssh-keygen</​code> ​ 
- +Vérifiez par <code bash>ls -l .ssh/ </​code>​ 
-ls -l .ssh/+qui doit vous retourner 
 +<​code>​
 total 12 total 12
 -rw------- 1 ragnarok cyrille 1876 juin  26  2019 id_rsa -rw------- 1 ragnarok cyrille 1876 juin  26  2019 id_rsa
Ligne 68: Ligne 60:
  
 Créer un fichier contenant les hosts Créer un fichier contenant les hosts
-<code bash>​mkdir /​etc/​ssh/​pssh_host +<code bash>​mkdir /​etc/​ssh/​pssh_host</​code>​ 
-nano /​etc/​ssh/​pssh_host/​pssh+Modifiez le ensuite. Par exemple avec [[:nano]] si vous êtes sur une [[:​console]]) 
 +<​code>​nano /​etc/​ssh/​pssh_host/​pssh</​code>​ 
 +<file bash>
 ###Mettre les adresses IP des serveurs à administrer ici. ###Mettre les adresses IP des serveurs à administrer ici.
 root@192.168.0.11 root@192.168.0.11
Ligne 75: Ligne 69:
 root@192.168.0.23 root@192.168.0.23
 root@192.168.0.43 root@192.168.0.43
-...</code>+...</file>
  
 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 ===== ===== Exporter la clef publique sur les clients =====
 +
 +Toujours en mode $USER
  
 <code bash>​ssh-copy-id root@192.168.0.11 <code bash>​ssh-copy-id root@192.168.0.11
Ligne 88: Ligne 84:
 Autant de fois que d'​entrées dans votre fichier **/​etc/​ssh/​pssh_host/​pssh** 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</​code>​ 
 +<​code>​
 /​usr/​bin/​ssh-copy-id:​ INFO: Source of key(s) to be installed: "/​home/​ragnarok/​.ssh/​id_rsa.pub"​ /​usr/​bin/​ssh-copy-id:​ INFO: Source of key(s) to be installed: "/​home/​ragnarok/​.ssh/​id_rsa.pub"​
 The authenticity of host '​192.168.0.43 (192.168.0.43)'​ can't be established. The authenticity of host '​192.168.0.43 (192.168.0.43)'​ can't be established.
Ligne 100: Ligne 97:
 Now try logging into the machine, with:   "​ssh '​root@192.168.0.43'"​ Now try logging into the machine, with:   "​ssh '​root@192.168.0.43'"​
 and check to make sure that only the key(s) you wanted were added.</​code>​ and check to make sure that only the key(s) you wanted were added.</​code>​
 +
 +FIXME root@192.168.0.43'​s password on ne doit pas saisir le mdp de la machine distante/​cliente ? 
  
  
Ligne 106: Ligne 105:
 ===== Initialiser pssh ===== ===== Initialiser pssh =====
  
 +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__. FIXME pas forcément le mot de passe de la machine mais une mot de passe nouvellement choisi non ? 
  
-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__. +<code bash>​ssh-agent bash 
- +ssh-add
-<code bash>ssh-agent bash +
-ssh-add+
 Enter passphrase for /​xxxx/​.ssh/​identity:</​code> ​ Enter passphrase for /​xxxx/​.ssh/​identity:</​code> ​
 +
  
 ===== Utiliser parallel-ssh ===== ===== Utiliser parallel-ssh =====
  
-==== Exemple, ​option -i ====+==== L'option -i ====
  
  
-<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</​code>​ 
 +Répondra 
 +<​code>​
 [1] 15:21:04 [SUCCESS] root@192.168.0.11 [1] 15:21:04 [SUCCESS] root@192.168.0.11
 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
Ligne 127: Ligne 129:
 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
  
-==== Exemple, ​option -o ====+==== L'option -o ====
  
 Pour **rediriger la sortie ssh des clients vers un fichier**, on utilisera l'​**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</​code>​ 
 +Répondra 
 +<​code>​
 [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</​code>​ [2] 15:22:48 [SUCCESS] root@192.168.0.43</​code>​
Ligne 137: Ligne 141:
 Et pour visualiser les sorties. Et pour visualiser les sorties.
  
-<​code>​cat /​tmp/​uname/​root@192.168.0.11 /​tmp/​uname/​root@192.168.0.43 ​+<​code>​cat /​tmp/​uname/​root@192.168.0.11 /​tmp/​uname/​root@192.168.0.43</​code>​ 
 +Répondra 
 +<​code>​
 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 ====+==== Mise à jour à distance ====
  
-<code bash>parallel-ssh -i  -h /​etc/​ssh/​pssh_host/​pssh_hosts apt-get update +<code bash>​parallel-ssh -i  -h /​etc/​ssh/​pssh_host/​pssh_hosts apt update 
-parallel-ssh -i  -h /​etc/​ssh/​pssh_host/​pssh_hosts apt-get upgrade</​code>​+parallel-ssh -i  -h /​etc/​ssh/​pssh_host/​pssh_hosts apt full-upgrade</​code>​
  
-===== Copier des fichiers vers les clients =====+:!: Attention ici il s'agit de la commande [[:apt]], à adapter selon votre gestionnaire de paquet :!:
  
 +==== Copier des fichiers vers les clients ====
  
 __Syntaxe__ __Syntaxe__
- +<code bash>​parallel-scp -h /​fichier_de_conf_pssh source destinatire</​code>​
-<code bash>parallel-scp -h /​fichier_de_conf_pssh source destinatire</​code>​+
  
 __Exemple__ __Exemple__
 +<code bash>​parallel-scp ​ -h /​etc/​ssh/​pssh_host/​pssh_hosts ​ $HOME/​test.txt /​tmp/</​code>​
  
-<code bash>$ parallel-scp ​ -h /​etc/​ssh/​pssh_host/​pssh_hosts ​ $HOME/​test.txt /​tmp/</​code>​ +==== Tuer des processus sur les postes clients ​====
- +
-Tuer des processus sur les postes clients+
  
 __Syntaxe__ __Syntaxe__
-<code bash>parallel-nuke -h /​fichier_de_conf_pssh nom_du_processus</​code>​+<code bash>​parallel-nuke -h /​fichier_de_conf_pssh nom_du_processus</​code>​
  
 __Exemple__ __Exemple__
-<code bash>parallel-nuke ​ -h /​etc/​ssh/​pssh_host/​pssh_hosts ​ nginx</​code>​+<code bash>​parallel-nuke ​ -h /​etc/​ssh/​pssh_host/​pssh_hosts ​ nginx</​code>​
  
- --- //[[cyrille@cbiot.fr|cyrille]] ​2020/03/15 16:49//+----  
 +//[[:​utilisateurs:​cyrille|cyrille]] ​AT cbiot DOT fr//
  • pssh.txt
  • Dernière modification: Le 14/12/2023, 15:51
  • par percherie