¿Cómo instalar algo de una computadora a toda la computadora?

9

En mi laboratorio universitario, todas las computadoras están conectadas con LAN, por lo que quiero instalar el software 'spyder' de una computadora a toda la computadora.
Es posible ?

Abhishek Kamal
fuente
¿Eres el administrador? Si no, obtenga permiso primero.
Thorbjørn Ravn Andersen
Instalé Ubuntuen cada computadora de mi laboratorio universitario con el mismo nombre de usuario (CSLAB) y la misma contraseña (E201) y todas las computadoras están conectadas con la misma LAN. Entonces, ¿cómo puedo ser administrador para los usuarios de cada computadora?
Abhishek Kamal
1
@AbhishekKamal, un consejo: no publique nombres de usuario reales (y contraseñas ??) en sitios web públicos. Y también, si "E201" realmente es su contraseña de administrador, ¡considere reemplazarla por algo mucho más seguro!
tplive
Las soluciones como Ansible y clusterssh (mencionadas a continuación) usan SSH para conectarse a las computadoras que desea administrar. Puede (y debe) configurar un acceso sin contraseña que afirme la confianza entre las computadoras (es decir, todas las computadoras administradas confían en su computadora) para que la automatización funcione sin problemas.
tplive
1
Un "administrador" en Ubuntu no es más que alguien que puede convertirse en root, por ejemplo, con "sudo -s" (y luego ejecuta "apt" para instalar el software). ¿Por qué estás haciendo esto en primer lugar?
Thorbjørn Ravn Andersen

Respuestas:

14

Para esto, mi solución preferida es Ansible ( https://www.ansible.com/ ). Le permite automatizar cualquier tipo de configuración o instalación en tantas computadoras como pueda desear. Otra ventaja de Ansible es la comunidad que ya ha puesto a disposición una gran cantidad de scripts robustos para realizar la mayoría de las tareas de configuración e instalación.

Esto parece un tutorial bastante comprensible para ponerlo en funcionamiento con Ansible.

Sin embargo, si este es un comando único que desea ejecutar en varias computadoras, es mejor que solo lo escriba en Bash .

tplive
fuente
12

Si solo necesita ejecutar un par de comandos simples y no desea configurar un software de automatización complejo (como ansible, salt o puppet) que podría usar clusterssh.

Abra una ventana de línea de comando para instalar

sudo apt-get install clusterssh

ahora puede abrir una conexión a varios hosts, como este

clusterssh -l username labhost1 labhost2 labhost3

clusterssh le dará una ventana para ingresar sus comandos, pero también una ventana de terminal para cada host al que se conecte, ¡para que pueda ver lo que realmente sucede!

Ejemplo de ClusterSSH En este ejemplo, puede ver la ventana de comandos con "apt-get update" a la derecha y todos los terminales del clúster a la izquierda.

Si uno de los hosts tiene un problema, puede ver el mensaje de error inmediatamente y hacer clic en el terminal correspondiente para remediar la situación.

También puede escribir una lista para clustersshconectarse: Abra su editor favorito y escriba a$HOME/.clusterssh/clusters

collegelab labhost1
collegelab labhost2
collegelab labhost3

luego conéctate con

clusterssh -l username collegelab

Otras lecturas

Robert Riedl
fuente
Para ser justos, probablemente podría hacer lo mismo desde la línea de comandos de Ansible tan simple y fácilmente como sugiere para clusterssh .. :) Coloque sus hosts en un archivo de inventario y luego ejecute el comando desde la terminal, algo así comoansible inventory -a 'shell command goes here'
tplive
1
@tplive seguro, puede hacerlo solo con los comandos ssh, también hay pssh... pero con clusterssh tiene comentarios inmediatos y una forma de detener / remediar si hay un problema. Esta es solo una forma alternativa de hacer las cosas. Personalmente, preferiría una automatización de software (como ansible).
Robert Riedl
En mi laboratorio universitario, cada computadora tiene el mismo nombre de usuario y la misma contraseña . Entonces, ¿puedo usar clusterssho ansiblepara eso?
Abhishek Kamal
@RobertRiedl y es por eso que voté su respuesta .. :)
tplive
1
@AbhishekKamal ¡Absolutamente! Para una experiencia más fluida con el inicio de sesión sin contraseña, coloque su clave ssh pública en el archivo autorizado_claves en cada computadora que use ssh-copy-ido similar.
tplive
0

Aquí hay una solución secuencial muy básica, suponiendo que conozca todos los nombres de host o direcciones IP de las computadoras en la red y que haya habilitado la autenticación de clave pública. Consulte aquí para obtener más detalles: https://man.openbsd.org/ssh-keygen.1

  1. Crear un nuevo archivo, por ejemplo hosts.txt
  2. Rellene cada línea de dicho archivo con las direcciones IP o los nombres de host de los cuadros en su LAN
  3. Itere sobre cada línea en el archivo e instale el software en el host así

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

bunnydrug
fuente
@bunnydrug El nombre de host para todas las computadoras en mi LAB es CSLAB y la contraseña es E201. Entonces, ¿qué debo escribir en el hosts.txtarchivo
Abhishek Kamal