Comment installer quelque chose d'un ordinateur sur tous les ordinateurs?

9

Dans mon laboratoire universitaire, tous les ordinateurs sont connectés au réseau local, je souhaite donc installer le logiciel «spyder» d'un ordinateur sur tous les ordinateurs.
C'est possible ?

Abhishek Kamal
la source
Êtes-vous l'administrateur? Sinon, obtenez d'abord la permission.
Thorbjørn Ravn Andersen
J'ai installé Ubuntudans chaque ordinateur de mon laboratoire universitaire avec le même nom d'utilisateur (CSLAB) et le même mot de passe (E201) et tous les ordinateurs sont connectés avec le même LAN. Alors, comment puis-je devenir administrateur pour chaque utilisateur d'ordinateur?
Abhishek Kamal
1
@AbhishekKamal, un conseil ... Ne publiez pas de vrais noms d'utilisateur (et mots de passe ??) sur des sites Web publics. Et aussi, si "E201" est vraiment votre mot de passe administrateur, pensez à le remplacer par quelque chose de beaucoup plus sécurisé!
tplive
Des solutions telles qu'Ansible et clusterssh (mentionnées ci-dessous) utilisent SSH pour se connecter aux ordinateurs que vous souhaitez gérer. Vous pouvez (et devez) configurer un accès sans mot de passe qui affirme la confiance entre les ordinateurs (c'est-à-dire que votre ordinateur est approuvé par tous les ordinateurs gérés) pour que l'automatisation fonctionne sans problème.
tplive
1
Un «administrateur» sur Ubuntu n'est rien de plus que quelqu'un qui peut devenir root, par exemple avec «sudo -s» (puis exécuter «apt» pour installer le logiciel). Pourquoi faites-vous cela en premier lieu?
Thorbjørn Ravn Andersen

Réponses:

14

Pour cela, ma solution préférée est Ansible ( https://www.ansible.com/ ). Il vous permet d'automatiser tout type de configuration ou d'installation sur autant d'ordinateurs que vous le souhaitez. Un autre avantage d'Ansible est la communauté qui a déjà mis à disposition de nombreux scripts robustes pour effectuer la plupart des tâches de configuration et d'installation.

Cela ressemble à un tutoriel assez compréhensible pour vous aider à utiliser Ansible.

Cependant, si ce n'est qu'une commande unique que vous souhaitez exécuter sur plusieurs ordinateurs, il vaut mieux simplement l' écrire dans Bash .

tplive
la source
12

S'il ne s'agit que de quelques commandes simples que vous devez exécuter et que vous ne souhaitez pas configurer un logiciel d'automatisation complexe (comme ansible, salt ou marionnette) que vous pourriez utiliser clusterssh.

Ouvrez une fenêtre de ligne de commande pour installer

sudo apt-get install clusterssh

vous pouvez maintenant ouvrir une connexion à un certain nombre d'hôtes, comme celui-ci

clusterssh -l username labhost1 labhost2 labhost3

clusterssh vous donnera alors une fenêtre pour entrer vos commandes, mais aussi une fenêtre de terminal pour chaque hôte auquel vous vous connectez - afin que vous puissiez voir ce qui se passe réellement!

Exemple ClusterSSH Dans cet exemple, vous pouvez voir la fenêtre de commande avec "apt-get update" à droite et tous les terminaux du cluster à gauche.

Si l'un des hôtes rencontre un problème, vous pouvez immédiatement voir le message d'erreur et cliquer sur le terminal correspondant pour remédier à la situation.

Vous pouvez également écrire une liste pour clustersshvous connecter: Ouvrez votre éditeur préféré et écrivez à$HOME/.clusterssh/clusters

collegelab labhost1
collegelab labhost2
collegelab labhost3

puis connectez-vous avec

clusterssh -l username collegelab

Lectures complémentaires

Robert Riedl
la source
En toute honnêteté, vous pourriez probablement faire la même chose à partir de la ligne de commande Ansible aussi simplement et facilement que vous le suggérez pour clusterssh .. :) Placez vos hôtes dans un fichier d'inventaire, puis exécutez la commande à partir du terminal, quelque chose commeansible inventory -a 'shell command goes here'
tplive
1
@tplive bien sûr, vous pouvez aussi le faire avec les commandes ssh seules, il y a aussi pssh.... mais avec clusterssh vous avez une rétroaction immédiate et un moyen d'arrêter / corriger s'il y a un problème. Ceci est juste une façon alternative de procéder. Personnellement, je préférerais une automatisation logicielle (comme ansible).
Robert Riedl
Dans mon laboratoire universitaire, chaque ordinateur a le même nom d'utilisateur et le même mot de passe . alors puis-je utiliser clustersshou ansiblepour cela?
Abhishek Kamal
@RobertRiedl et c'est pourquoi j'ai voté pour votre réponse .. :)
tplive
1
@AbhishekKamal Absolument! Pour une expérience optimale avec la connexion sans mot de passe, placez votre clé publique ssh dans le fichier authorized_keys sur chaque ordinateur utilisant ssh-copy-idou similaire.
tplive
0

Voici une solution séquentielle très basique en supposant que vous connaissez tous les noms d'hôte ou adresses IP des ordinateurs sur le réseau et que vous avez activé l'authentification par clé publique. Voir ici pour plus de détails - https://man.openbsd.org/ssh-keygen.1

  1. Créez un nouveau fichier par exemple hosts.txt
  2. Remplissez chaque ligne dudit fichier avec les adresses IP ou les noms d'hôtes des boîtes sur votre LAN
  3. Itérer sur chaque ligne du fichier et installer le logiciel sur l'hôte comme ça

for i in `cat hosts.txt`; do ssh $i apt-get --assume-yes install spyder; echo ; done

bunnydrug
la source
@bunnydrug Le nom d'hôte de tous les ordinateurs de mon LAB est CSLAB et le mot de passe est E201. alors que dois-je écrire dans le hosts.txtfichier
Abhishek Kamal