Como implantar programas em várias máquinas [duplicado]

1

Eu preciso instalar alguns programas em cerca de 40 máquinas do Kubuntu 13.04, e gostaria de saber quais opções eu tenho que fazer da forma mais eficiente possível.

EDIT: Eu tenho os repositórios já definidos e as máquinas são todos clones idênticos, sem autenticação LDAP ou servidor centralizado.

    
por Dudemcman 27.09.2013 / 16:43

3 respostas

3

Qualquer software de gerenciamento de configuração serve, é para isso que eu gostaria de sugerir para dar uma olhada no chef. Esta é a sinopse da página da Web:

Chef is an automation platform that transforms infrastructure into code. Stop thinking in terms of physical and virtual servers. With Chef, your real asset is the code that brings those servers and the services they provide to life. An automated infrastructure can accelerate your time to market, help you manage scale and complexity, and safeguard your systems.

Whether your network is in the cloud, on-site, or a hybrid, Chef can automate how you configure, deploy and scale your servers and applications, whether you manage 5 servers, 5,000 servers or 500,000 servers. It's no wonder that Chef has been chosen by companies like Facebook and Amazon for mission-critical challenges.

este vídeo vai ajudar muito: link

home page: link

    
por 27.09.2013 / 16:45
2

Apenas para expandir a resposta muito boa de Rahul, você pode configurar o acesso sem senha a cada uma das máquinas com bastante facilidade usando esta abordagem:

  1. instale sshpass na sua máquina local:

    sudo apt-get install sshpass
    

    Isso permitirá que você passe a senha como um argumento de linha de comando:

     sshpass -p '<password>' ssh user@server
    
  2. Crie uma chave ssh

    ssh-keygen -t rsa
    

    Você pode simplificar as coisas permitindo uma frase secreta vazia (o restante desta resposta assumirá que você o fez, deixe-me saber se suas preocupações de segurança proíbem isso e eu modificarei de acordo).

  3. Crie um arquivo com todos os IPs em que você está interessado e seus respectivos nomes de usuário e senhas, um por linha:

    1.2.3.4 bob bobs_password
    11.22.33.44 hary harrys_password 
    

    Agora, use sshpass para copiar seus arquivos de chave e, desde que você tenha usado uma frase secreta vazia, permita acesso sem senha a todas as máquinas:

    while read ip user pass; do 
      sshpass -p "$pass" ssh ssh-copy-id -i ~/.ssh/id_rsa.pub $user@$ip;
    done < ips.txt
    
  4. Agora que você configurou o acesso sem senha, instale o software em cada máquina (isso pressupõe que $user pode executar apt-get , basicamente que $user é root ):

     while read ip user pass; do 
       ssh $user@$ip "apt-get install package; 
     done < ips.txt
    
por 27.09.2013 / 19:23
2

Para metas de longo prazo

Se você quiser uma ferramenta de automação que lhe permita centralizar o gerenciamento dos vários aromas * nix executados em sua rede e gerenciar todos os aspectos da configuração que você puder, então você pode ver:

  1. fantoche
  2. chef
  3. cfengine3

Para meta de curto prazo

Se você quiser uma solução temporária para instalar apenas um pacote através de apt-get ou yum , então você pode usar shell ou perl, script python.

Se você já configurou a autenticação sem senha, poderá usar o seguinte script:

#!/usr/bin/env bash

Servers_list=/opt/servers_list
PackageName="package-name"

for Host in $(< $Servers_list )
do
    echo "Installing package on $Host"
    ssh "${Host}"  apt-get -y install "${PackageName}"

done

Se você não tiver menos autenticação de senhas, poderá usar a ferramenta expect ou o módulo paramiko em python.

    
por 27.09.2013 / 17:52