Reinicio de clientes ubuntu através de uma rede LAN

Iniciado por Fabiano12, 12 de Novembro de 2013, 18:12

tópico anterior - próximo tópico

Fabiano12

Boa tarde a todos!!!

Gostaria de um auxilio ou uma forma de como realizar um reinicio em massa de clientes ubuntu através de um servidor ubuntu. Estou me deparando com algumas dificuldades por exemplo, em todas as conexões via ssh, há a necessidade de se aceitar (yes) a chave RSA. Tentei algumas ferramentas como sshpass mas deparo-me sempre com este imbroglio do aceite da chave RSA. Tentei alguns comandos como shutdown -r \\ipdoclienteubuntu mas sem sucesso. Tenho um parque computacional de aproximadamente 350 cpu cliente-ubuntu onde há a necessidade de um reinicio após algumas alterações em nosso sistema de vendas.

Há algum caminho ou passo ao qual posso estar colocando em pratica?

Certo de poder contar com a atenção.
Sds,
Fabiano Lima

selvaking

Vc pode instalar o openssh-server nas suas 350 máquinas. Se já não estiver instalado
sudo apt-get install openssh-server
configurar uma chave criptográfica na sua máquina servidora(Na realidade vc usará o cliente SSH dela. Alías, vc nem precisa fazer isto no seu servidor. POde comandar do seu Desktop).
Importante: Ao criar esta chave não coloque senha deixe em branco.
ssh-keygen
Exporte ela para o usuário root do micro que vc quer desligar. Obs: Tem que ser o root PQ só este tem autorização pra dá o shutdown. Pra criar um usuário só pra dá o shutdown, teriam outros passos.
ssh-copy-id root@192.168.10.32

Depois é só testar.
ssh root@192.168.10.32 reboot

Quando todas as máquinas estiverem neste padrão é só fazer um script incrementando os IP's dos micros na rede.
Dê-me um computador com o Tux que movo o mundo!

Linux User #323049

zekkerj

Citarem todas as conexões via ssh, há a necessidade de se aceitar (yes) a chave RSA.
Sim, mas apenas uma vez.

Se você precisa executar um comando remoto sem senha, pode instalar um certificado criptográfico nas máquinas, e usá-lo para autenticação no SSH.

Assim:

1. Na máquina que vai controlar as outras, crie um par de chaves.

ssh-keygen -t rsa -b 2048 -f chave_desligamento

Forneça uma senha pra proteger sua chave.

O comando vai criar dois arquivos, um chamado "chave_desligamento", o outro chamado "chave_desligamento.pub".

----
Os próximos passos devem ser executados manualmente nas máquinas a serem controladas.

2. Copie o arquivo "chave_desligamento.pub" para a máquina que vai ser desligada.

3. Adicione o conteúdo do arquivo "chave_desligamento.pub" ao final do arquivo "/root/.ssh/authorized_keys".

sudo -s
cd /root
mkdir -p .ssh
chmod 600 .ssh
cd .ssh
cat ~/chave_desligamento.pub >> authorized_keys


4. Edite o arquivo /etc/ssh/sshd_config, e procure pela chave "PermitRootLogin", provavelmente estará como "no" --- mude-a para "forced-commands-only".

5. Assegure-se que o serviço ssh está configurado pra iniciar automaticamente. No Ubuntu vc faz isso com o comando

sudo update-rc.d ssh defaults

6. Reinicie o serviço ssh na máquina (ou a própria máquina).

----

De volta à máquina que vai controlar as outras, nesse momento você já deve conseguir se logar remotamente usando a chave privada:

ssh -i chave_desligamento root@maquina-controlada

Observe que ao executar este comando, você precisará fornecer a senha que está protegendo a chave [não a sua senha, nem a senha do root na máquina remota --- aliás, vc não precisará ter uma senha no root na máquina remota, usando este procedimento].

Como muitas vezes vc não estará perto da máquina pra digitar esta senha na hora em que precisar usar a chave privada, vc pode usar o programa "ssh-agent" para armazená-la em memória. Você o inicia com o comando abaixo:

eval `ssh-agent`

Em seguida você deve carregar sua chave com o comando

ssh-add chave_desligamento

Forneça sua senha, e a partir daí vc não vai precisar mais fornecê-la enquanto estiver logado. Se precisar sair ou reiniciar a máquina controladora, é só executar de novo esses comandos.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Fabiano12

Srs boa tarde!!!

estarei colocando em prática as soluções apresentadas abaixo, porém:

zekkerj, quando tu mencionas "Se precisar sair ou reiniciar a máquina controladora, é só executar de novo esses comandos." estes seriam todos deste o início ou trata-se de alguma parte do código de execução?

Sds,
Fabiano Lima

zekkerj

Referi-me aos dois últimos comandos (eval `ssh-agent`, ssh-add chave_desligamento).
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Fabiano12

Boa tarde Srs zekkerj e selvaking!!!!

Venho por meio deste agradecer vossas citações pois serviu como parametro para criar uma forma de reiniciar meus clientes ubuntu num só script. Muito obrigado pela ajuda.

Sds,
Fabiano Lima

Fabiano12


selvaking

Beleza Fabiano12!

Seria pedir muito a vc que publicasse pra gente seu Script. Assim outros poderiam se beneficiar se precisassem da mesma solução.

Tks!
Dê-me um computador com o Tux que movo o mundo!

Linux User #323049