Jak zainstalować coś z jednego komputera na cały komputer?

9

W moim laboratorium studenckim wszystkie komputery są połączone z siecią LAN, więc chcę zainstalować oprogramowanie „spyder” z jednego komputera na cały komputer.
Czy to możliwe ?

Abhishek Kamal
źródło
Czy jesteś administratorem? Jeśli nie, najpierw uzyskaj pozwolenie.
Thorbjørn Ravn Andersen
Zainstalowałem Ubuntuna każdym komputerze w moim studenckim laboratorium z tą samą nazwą użytkownika (CSLAB) i tym samym hasłem (E201), a wszystkie komputery są połączone z tą samą siecią LAN. Jak mogę zostać administratorem każdego użytkownika komputera?
Abhishek Kamal
1
@AbhishekKamal, słowo porady .. Nie publikuj prawdziwych nazw użytkowników (i haseł?) Na publicznych stronach internetowych. Ponadto, jeśli „E201” naprawdę jest twoim hasłem administratora, rozważ zastąpienie go czymś o wiele bezpieczniejszym!
tplive
Rozwiązania takie jak Ansible i clusterssh (wymienione poniżej) wykorzystują SSH do łączenia się z komputerami, którymi chcesz zarządzać. Możesz (i należy) skonfigurować dostęp bez hasła, który potwierdza zaufanie między komputerami (tzn. Twój komputer jest zaufany przez wszystkie zarządzane komputery), aby automatyzacja działała sprawnie.
tplive
1
„Administrator” w Ubuntu jest niczym więcej niż kimś, kto może zostać rootem, np. Z „sudo -s” (a następnie uruchomić „apt”, aby zainstalować oprogramowanie). Dlaczego to robisz w pierwszej kolejności?
Thorbjørn Ravn Andersen

Odpowiedzi:

14

W tym celu moim preferowanym rozwiązaniem jest Ansible ( https://www.ansible.com/ ). Pozwala zautomatyzować dowolną konfigurację lub instalację na dowolnej liczbie komputerów. Kolejną zaletą Ansible jest społeczność, która już udostępniła wiele niezawodnych skryptów do wykonywania większości zadań konfiguracyjnych i instalacyjnych.

Wygląda to na dość zrozumiały samouczek, dzięki któremu możesz zacząć korzystać z Ansible.

Jeśli jednak jest to jednorazowe polecenie, które chcesz uruchomić na wielu komputerach, lepiej po prostu skryptuj je w Bash .

tplive
źródło
12

Jeśli to tylko kilka prostych poleceń, które musisz wykonać, a nie chcesz konfigurować złożonego oprogramowania do automatyzacji (takiego jak ansible, salt lub puppet), którego możesz użyć clusterssh.

Otwórz okno wiersza poleceń, aby zainstalować

sudo apt-get install clusterssh

teraz możesz otworzyć połączenie z wieloma hostami, takimi jak to

clusterssh -l username labhost1 labhost2 labhost3

clusterssh da ci wtedy okno do wprowadzania poleceń, ale także jedno okno terminala dla każdego hosta, z którym się łączysz - dzięki czemu możesz zobaczyć, co się naprawdę dzieje!

Przykład ClusterSSH W tym przykładzie widać okno poleceń z „apt-get update” po prawej stronie i wszystkimi terminalami klastra po lewej stronie.

Jeśli jeden z hostów ma problem, możesz natychmiast zobaczyć komunikat o błędzie i kliknąć odpowiedni terminal, aby naprawić sytuację.

Możesz także napisać listę, z którą clustersshchcesz się połączyć: Otwórz swój ulubiony edytor i napisz do$HOME/.clusterssh/clusters

collegelab labhost1
collegelab labhost2
collegelab labhost3

następnie połącz się z

clusterssh -l username collegelab

Dalsza lektura

Robert Riedl
źródło
Szczerze mówiąc, prawdopodobnie możesz zrobić to samo z wiersza poleceń Ansible tak prosto i łatwo, jak sugerujesz dla klastrów .. :) Umieść swoje hosty w pliku inwentarza, a następnie uruchom polecenie z terminala, coś w styluansible inventory -a 'shell command goes here'
tplive
1
@ tplive na pewno możesz to zrobić za pomocą samych poleceń ssh, jest też pssh.... ale z klastrami masz natychmiastową informację zwrotną i sposób na zatrzymanie / naprawienie, jeśli występuje problem. To tylko alternatywny sposób na załatwienie sprawy. Osobiście wolałbym automatyzację oprogramowania (np. Ansible).
Robert Riedl
W moim laboratorium akademickim każdy komputer ma tę samą nazwę użytkownika i hasło . więc mogę użyć clustersshlub ansibledo tego?
Abhishek Kamal
@RobertRiedl i dlatego głosowałem na twoją odpowiedź .. :)
tplive
1
@AbhishekKamal Absolutnie! Aby uzyskać najbardziej płynną pracę z logowaniem bez hasła, włóż swój publiczny klucz ssh do pliku autoryzowanych_kluczy na każdym komputerze za pomocą ssh-copy-idlub podobnie.
tplive
0

Oto bardzo podstawowe rozwiązanie sekwencyjne, zakładając, że znasz wszystkie nazwy hostów lub adresy IP komputerów w sieci i masz włączone uwierzytelnianie za pomocą klucza publicznego. Zobacz tutaj po więcej szczegółów - https://man.openbsd.org/ssh-keygen.1

  1. Utwórz nowy plik, np hosts.txt
  2. Wypełnij każdą linię wspomnianego pliku adresami IP lub nazwami hostów pól w twojej sieci LAN
  3. Iteruj po każdej linii pliku i zainstaluj oprogramowanie na hoście w ten sposób

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

bunnydrug
źródło
@bunnydrug Nazwa hosta dla wszystkich komputerów w moim LAB to CSLAB, a hasło to E201. więc co powinienem napisać w hosts.txtpliku
Abhishek Kamal