Gerencie alguns servidores Linux de uma vez

Gerencie alguns servidores Linux de uma vez

Tenho um pequeno cluster que consiste em alguns nós Linux. Há um NFS compartilhado e tenho a mesma conta de usuário com chaves SSH compartilhadas em todos os nós, mas, fora isso, cada nó possui seu próprio sistema de arquivos e configuração.

Quero poder controlar a configuração de todos os nós a partir de um nó central. Uma configuração típica consiste principalmente em arquivos de configuração, tanto no diretório do usuário quanto em /etcou /opt. Ocasionalmente, também preciso instalar os mesmos pacotes em todos os nós ou executar outros comandos shell.

Este é um pequeno cluster que dificilmente justifica sistemas de automação de nível empresarial ou outras instalações complexas. Existe alguma maneira diferente que você experimentou e testou, de preferência leve e de código aberto? Ou mesmo baseado diretamente em hacks BASH/SSH? Obrigado.

Responder1

Eu recomendo fortemente o Saltstack. É flexível, escalável, leve e gratuito.

http://www.saltstack.com

Responder2

Ansibledeve funcionar se você os estiver controlando no Linux ou Mac OS X com homebrew. O Windows não é compatível com a máquina de controle. Os nós do Linux precisam ter SSH e Python, mas como a maioria das distribuições Linux instala o Python por padrão, você provavelmente já está coberto. Tudo que você precisa fazer éinstalaransible no master, o que deve ser fácil.

Assista aos 23 minutosvídeo de início rápidopara ter uma ideia melhor. Recomendo também dar uma olhada noIntrodução aos comandos ad-hocseção da documentação:

  • Execute o comando em todos os servidores de um grupo, neste caso, atlanta, em 10 bifurcações paralelas:

    $ ansible atlanta -a "/sbin/reboot" -f 10
    
  • Certifique-se de que um pacote esteja instalado, mas não o atualize:

    $ ansible webservers -m yum -a "name=acme state=installed"
    
  • Para transferir um arquivo diretamente para vários servidores diferentes:

    $ ansible atlanta -m copy -a "src=/etc/hosts dest=/tmp/hosts"
    
  • Certifique-se de que um serviço seja iniciado em todos os servidores da web:

    $ ansible webservers -m service -a "name=httpd state=started"
    

Existem também algunsexemplosde manuais.

Responder3

Para executar comandos, você pode usar uma ferramenta que pode executar um comando em vários servidores SSH

Existem alguns deles:

  1. pssh
  2. Cluster SSH

Ambos disponíveis no Debian e Ubuntu.

Responder4

TentarEsperarroteiros. Eles são uma ótima maneira de automatizar a execução das mesmas tarefas em várias máquinas.

Com os scripts esperados, você não precisará fazer login manualmente em cada máquina e executar a mesma tarefa repetidamente. Eu uso isso para coisas como alterar senhas de um usuário em todas as máquinas, executar scripts de verificação em cada máquina, etc.

informação relacionada