Wie installiere ich etwas von einem Computer auf allen Computern?

9

In meinem College-Labor sind alle Computer mit LAN verbunden, daher möchte ich "Spyder" -Software von einem Computer auf allen Computern installieren.
Ist es möglich ?

Abhishek Kamal
quelle
Sind Sie der Administrator? Wenn nicht, holen Sie zuerst die Erlaubnis ein.
Thorbjørn Ravn Andersen
Ich habe Ubuntuauf jedem Computer meines College-Labors denselben Benutzernamen (CSLAB) und denselben Passwrod (E201) installiert, und alle Computer sind mit demselben LAN verbunden. Wie kann ich Administrator für jeden Computerbenutzer werden?
Abhishek Kamal
1
@AbhishekKamal, ein Ratschlag .. Veröffentlichen Sie keine echten Benutzernamen (und Passwörter ??) auf öffentlichen Websites. Und wenn "E201" wirklich Ihr Administratorkennwort ist, sollten Sie es durch etwas viel Sichereres ersetzen!
tplive
Lösungen wie Ansible und clusterssh (siehe unten) verwenden SSH, um eine Verbindung zu den Computern herzustellen, die Sie verwalten möchten. Sie können (und sollten) einen kennwortlosen Zugriff einrichten, der das Vertrauen zwischen den Computern bestätigt (dh Ihr Computer wird von allen verwalteten Computern als vertrauenswürdig eingestuft), damit die Automatisierung reibungslos funktioniert.
tplive
1
Ein "Administrator" unter Ubuntu ist nichts anderes als jemand, der root werden kann, z. B. mit "sudo -s" (und dann "apt" ausführen, um Software zu installieren). Warum machst du das überhaupt?
Thorbjørn Ravn Andersen

Antworten:

14

Meine bevorzugte Lösung hierfür ist Ansible ( https://www.ansible.com/ ). Damit können Sie jede Art von Konfiguration oder Installation auf so vielen Computern automatisieren, wie Sie möchten. Ein weiterer Vorteil von Ansible ist die Community, die bereits viele robuste Skripte für die meisten Konfigurations- und Installationsaufgaben zur Verfügung gestellt hat.

Dies scheint ein ziemlich verständliches Tutorial zu sein, mit dem Sie Ansible zum Laufen bringen können.

Wenn dies jedoch nur ein einmaliger Befehl ist, den Sie auf mehreren Computern ausführen möchten, ist es besser, ihn nur in Bash zu skripten .

tplive
quelle
12

Wenn es sich nur um ein paar einfache Befehle handelt, die Sie ausführen müssen, und Sie keine komplexe Automatisierungssoftware (wie Ansible, Salt oder Puppet) konfigurieren möchten, die Sie verwenden könnten clusterssh.

Öffnen Sie ein zu installierendes Befehlszeilenfenster

sudo apt-get install clusterssh

Jetzt können Sie wie folgt eine Verbindung zu einer Reihe von Hosts herstellen

clusterssh -l username labhost1 labhost2 labhost3

clusterssh gibt Ihnen dann ein Fenster zur Eingabe Ihrer Befehle, aber auch ein Terminalfenster für jeden Host, mit dem Sie eine Verbindung herstellen - damit Sie sehen können, was tatsächlich passiert!

ClusterSSH-Beispiel In diesem Beispiel sehen Sie das Befehlsfenster mit "apt-get update" rechts und alle Cluster-Terminals links.

Sollte einer der Hosts ein Problem haben, können Sie die Fehlermeldung sofort sehen und auf das entsprechende Terminal klicken, um die Situation zu beheben.

Sie können auch eine Liste für clustersshdie Verbindung schreiben : Öffnen Sie Ihren Lieblingseditor und schreiben Sie an$HOME/.clusterssh/clusters

collegelab labhost1
collegelab labhost2
collegelab labhost3

dann verbinden mit

clusterssh -l username collegelab

Weiterführende Literatur

Robert Riedl
quelle
Der Fairness halber könnte man wahrscheinlich das gleiche von ansible Kommandozeilen wie einfach und einfach tun , wie Sie für clusterssh vorschlagen .. :) Legen Sie Ihre Gastgeber in einer Inventardatei, und dann den Befehl vom Terminal laufen, so etwas wieansible inventory -a 'shell command goes here'
tplive
1
@tplive sicher, Sie können dies auch nur mit ssh-Befehlen tun, es gibt auch pssh... aber mit clusterssh haben Sie sofortiges Feedback und eine Möglichkeit, das Problem zu stoppen / zu beheben, wenn es ein Problem gibt. Dies ist nur eine alternative Vorgehensweise. Persönlich würde ich eine Software-Automatisierung bevorzugen (wie ansible).
Robert Riedl
In meinem College-Labor hat jeder Computer den gleichen Benutzernamen und das gleiche Passwort . also kann ich clustersshoder ansibledafür verwenden?
Abhishek Kamal
@RobertRiedl und deshalb habe ich Ihre Antwort upvoted .. :)
tplive
1
@AbhishekKamal Auf jeden Fall! Um eine möglichst reibungslose Anmeldung ohne Kennwort zu erzielen, geben Sie Ihren öffentlichen SSH-Schlüssel mit ssh-copy-idoder ähnlichem in die Datei authorized_keys auf jedem Computer ein .
tplive
0

Hier ist eine sehr einfache sequentielle Lösung, vorausgesetzt, Sie kennen alle Hostnamen oder IP-Adressen der Computer im Netzwerk und haben die Authentifizierung mit öffentlichem Schlüssel aktiviert. Weitere Informationen finden Sie hier - https://man.openbsd.org/ssh-keygen.1

  1. Erstellen Sie eine neue Datei, z hosts.txt
  2. Füllen Sie jede Zeile dieser Datei mit den IP-Adressen oder Hostnamen der Boxen in Ihrem LAN
  3. Durchlaufen Sie jede Zeile in der Datei und installieren Sie die Software wie folgt auf dem Host

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

Bunnydrug
quelle
@bunnydrug Der Hostname für alle Computer in meinem LAB lautet CSLAB und das Kennwort lautet E201. Also, was soll ich in hosts.txtDatei schreiben
Abhishek Kamal