Como instalar algo de um computador para todo o computador?

9

No meu laboratório da faculdade, todos os computadores estão conectados à LAN, então eu quero instalar o software 'spyder' de um computador para todo o computador.
É possível ?

Abhishek Kamal
fonte
Você é o administrador? Caso contrário, obtenha permissão primeiro.
Thorbjørn Ravn Andersen
Eu instalei Ubuntuem cada computador do meu laboratório da faculdade com o mesmo nome de usuário (CSLAB) e a mesma senha (E201) e todos os computadores estão conectados à mesma LAN. Então, como posso me tornar um administrador para cada usuário de computador?
Abhishek Kamal
11
@AbhishekKamal, uma palavra de conselho. Não publique nomes de usuário (senhas ??) reais em sites públicos. E também, se "E201" realmente é sua senha de administrador, considere substituí-la por algo muito mais seguro!
tplive 29/01/19
Soluções como Ansible e clusterssh (mencionadas abaixo) usam SSH para conectar-se aos computadores que você deseja gerenciar. Você pode (e deve) configurar o acesso sem senha que afirma a confiança entre os computadores (ou seja, seu computador é confiável por todos os computadores gerenciados) para que a automação funcione sem problemas.
tplive 29/01
11
Um "administrador" no Ubuntu nada mais é do que alguém que pode se tornar root, por exemplo, com "sudo -s" (e execute o "apt" para instalar o software). Por que você está fazendo isso em primeiro lugar?
Thorbjørn Ravn Andersen

Respostas:

14

Para isso, minha solução preferida é a Ansible ( https://www.ansible.com/ ). Permite automatizar qualquer tipo de configuração ou instalação em quantos computadores você desejar. Outra vantagem do Ansible é a comunidade que já disponibilizou muitos scripts robustos, para executar a maioria das tarefas de configuração e instalação.

Parece um tutorial bastante compreensível para você começar a trabalhar com o Ansible.

No entanto, se esse é apenas um comando único que você deseja executar em vários computadores, é melhor criar um script no Bash .

tplive
fonte
12

Se são apenas alguns comandos simples que você precisa executar e não deseja configurar um software de automação complexo (como ansible, salt ou fantoche), você pode usar clusterssh.

Abra uma janela da linha de comandos para instalar

sudo apt-get install clusterssh

agora você pode abrir uma conexão com vários hosts, como este

clusterssh -l username labhost1 labhost2 labhost3

O clusterssh fornecerá uma janela para você digitar seus comandos, mas também uma janela de terminal para cada host ao qual você se conectar - para que você possa ver o que realmente acontece!

Exemplo ClusterSSH Neste exemplo, você pode ver a janela de comando com "apt-get update" à direita e todos os terminais do cluster à esquerda.

Se um dos hosts tiver um problema, você poderá ver a mensagem de erro imediatamente e clicar no terminal correspondente para solucionar a situação.

Você também pode escrever uma lista para clustersshconectar-se a: Abra seu editor favorito e escreva para$HOME/.clusterssh/clusters

collegelab labhost1
collegelab labhost2
collegelab labhost3

então conecte-se com

clusterssh -l username collegelab

Leitura adicional

Robert Riedl
fonte
Para ser honesto, você provavelmente poderia fazer o mesmo da linha de comando Ansible da maneira mais simples e fácil que você sugere para o clusterssh .. :) Coloque seus hosts em um arquivo de inventário e execute o comando a partir do terminal, algo comoansible inventory -a 'shell command goes here'
1919
11
@ Certamente, você pode fazer isso apenas com os comandos ssh, também há pssh... mas com o clusterssh você tem um feedback imediato e uma maneira de parar / remediar se houver um problema. Esta é apenas uma maneira alternativa de fazer as coisas. Pessoalmente, eu prefiro uma automação de software (como ansible).
Robert Riedl
No meu laboratório da faculdade, cada computador tem o mesmo nome de usuário e a mesma senha . então eu posso usar clustersshou ansiblepara isso?
Abhishek Kamal
@RobertRiedl e é por isso que eu upvoted sua resposta .. :)
tplive
11
@AbhishekKamal Absolutely! Para uma experiência mais suave com o login sem senha, coloque sua chave pública ssh no arquivo allowed_keys em cada computador usando ssh-copy-idou similar.
tplive 28/01/19
0

Aqui está uma solução seqüencial muito básica, supondo que você saiba todos os nomes de host ou endereços IP dos computadores na rede e que tenha ativado a autenticação de chave pública. Veja aqui para mais detalhes - https://man.openbsd.org/ssh-keygen.1

  1. Crie um novo arquivo, por exemplo hosts.txt
  2. Preencha cada linha do referido arquivo com os endereços IP ou nomes de host das caixas na sua LAN
  3. Itere sobre cada linha do arquivo e instale o software no host da seguinte maneira

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

coelho
fonte
@bunnydrug O nome do host de todos os computadores no meu LAB é CSLAB e a senha é E201. Então, o que eu deveria escrever em hosts.txtarquivo
Abhishek Kamal