Gerencie alguns servidores Linux de uma só vez

2

Eu tenho um pequeno cluster que consiste em alguns nós do Linux. Há um NFS compartilhado e eu tenho a mesma conta de usuário com chaves SSH compartilhadas em todos os nós, mas além disso, cada nó tem seu próprio sistema de arquivos e configuração.

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

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

    
por Little Bobby Tables 06.03.2014 / 11:23

4 respostas

2

Ansible deve fazer o truque se você estiver controlando-os do 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 o que você precisa fazer é instalar ansible no mestre, o que deve ser fácil.

Assista aos 23 minutos de vídeo de início rápido para ter uma ideia melhor. Também recomendo dar uma olhada na seção Introdução aos comandos ad-hoc da documentação:

  • Execute o comando em todos os servidores de um grupo, neste caso, atlanta, em 10 garfos paralelos:

    $ ansible atlanta -a "/sbin/reboot" -f 10
    
  • Verifique se um pacote está 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"
    
  • Garanta que um serviço seja iniciado em todos os servidores da Web:

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

Existem também alguns exemplos de manuais.

    
por 07.03.2014 / 21:05
1

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

link

    
por 06.03.2014 / 15:01
1

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

Existem alguns deles:

  1. pssh
  2. SSH de cluster

Ambos disponíveis no Debian e no Ubuntu.

    
por 07.03.2014 / 22:06
-2

Teste os scripts Esperar . 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á efetuar login manualmente em cada máquina e executar a mesma tarefa várias vezes. Eu uso para coisas como alterar as senhas de um usuário em todas as máquinas, executando scripts de verificação em cada máquina, etc.

    
por 07.03.2014 / 20:09