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 /etc
ou /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.
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:
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.