
Preciso instalar alguns programas em cerca de 40 máquinas Kubuntu 13.04 e gostaria de saber quais opções tenho para fazer isso da maneira mais eficiente possível.
EDIT: Já tenho os repositórios configurados e as máquinas são todas clones idênticos, sem autenticação LDAP ou servidor centralizado.
Responder1
Qualquer software de gerenciamento de configuração serve, é para isso que servem, sugiro dar uma olhada no chef. Esta é a sinopse da página deles:
Chef é uma plataforma de automação que transforma infraestrutura em código. Pare de pensar em servidores físicos e virtuais. Com o Chef, seu verdadeiro ativo é o código que dá vida a esses servidores e aos serviços que eles fornecem. Uma infraestrutura automatizada pode acelerar o tempo de lançamento no mercado, ajudá-lo a gerenciar a escala e a complexidade e proteger seus sistemas.
Quer sua rede esteja na nuvem, no local ou híbrida, o Chef pode automatizar a forma como você configura, implanta e dimensiona seus servidores e aplicativos, independentemente de você gerenciar 5 servidores, 5.000 servidores ou 500.000 servidores. Não é de admirar que o Chef tenha sido escolhido por empresas como Facebook e Amazon para desafios de missão crítica.
esse vídeo vai ajudar muito: http://www.youtube.com/watch?v=0UXh5EnFZrM
pagina inicial: http://www.opscode.com/chef/
Responder2
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:
instalar
sshpass
na sua máquina local:sudo apt-get install sshpass
Isso permitirá que você passe a senha como argumento de linha de comando:
sshpass -p '<password>' ssh user@server
Crie uma chave ssh
ssh-keygen -t rsa
Você pode simplificar as coisas permitindo uma senha vazia (o restante desta resposta assumirá que você fez isso, deixe-me saber se suas preocupações de segurança proíbem isso e eu modificarei de acordo).
Crie um arquivo com todos os IPs de seu interesse 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 senha 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
Agora que você configurou o acesso sem senha, instale seu software em cada máquina (isso pressupõe que ele possa
$user
ser executadoapt-get
, basicamente ):$user
root
while read ip user pass; do ssh $user@$ip "apt-get install package; done < ips.txt
Responder3
Para objetivo de longo prazo
Se você deseja uma ferramenta de automação que permita centralizar o gerenciamento dos vários tipos *nix em execução em sua rede e gerenciar todos os aspectos da configuração que puder, você pode consultar:
- fantoche
- chefe de cozinha
- cfengine3
Para objetivo de curto prazo
Se você deseja uma solução temporária apenas para instalar algum pacote por meio de apt-get
ou yum
, então você pode usar shell ou perl, script python.
Se você já configurou a autenticação sem senha, basta 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 autenticação sem senha, poderá usar expect
a ferramenta ou paramiko
módulo em python.