Implementação de aplicativo sobre o ssh

4

Meu trabalho exige atualizações freqüentes de versões do software compilado pela Centos nos PCs dos clientes em vários saltos ssh. Recentemente isso chegou ao ponto de incontrolável à mão. Qual software pode ser utilizado para automatizar o processo?

O que eu preciso é de algo que aceite vários arquivos atualizados, transfira-os por scp / ssh e execute automaticamente o desempacotamento / substituição de scripts no host remoto. Existe tal software ou é que é gravável por simples script bash?

Idealmente, o que eu quero é escrever (na minha própria máquina) "helperappname hostname packagefile" e ter o aplicativo auxiliar executando a implantação. ou algo assim.

    
por Zeks 18.06.2013 / 20:11

2 respostas

3

Se todas as suas máquinas de destino forem o CentOS, eu realmente recomendo tentar agrupar os aplicativos como RPMs. Depois disso, você pode automatizar facilmente o agrupamento de versões mais recentes, e a implantação se torna uma simples questão de configurar um repositório acessível a todos os servidores de destino (que podem ter dificuldades próprias) e executar uma atualização "yum" "ou" yum install "comando em cada cliente que você deseja que o software seja atualizado / instalado. O investimento de tempo será um pouco grande - na ordem de uma semana ou duas, se você aprender rápido - mas seu retorno será enorme - reduzindo o tempo de instalação para menos de 30 segundos em cada máquina de destino.

    
por 18.06.2013 / 20:46
3

Esta é uma área bastante densa de ferramentas disponíveis para esse tipo de tarefa. Como você mencionou, você pode essencialmente rolar seus próprios scripts de shell simples até uma ferramenta de gerenciamento de configuração, como o cfengine ou o fantoche.

Eu ficaria inclinado a começar de maneira simples e rolar meus próprios scripts de shell e depois passar para um dos sistemas dedicados para fazer isso.

Ao fazer isso, você terá uma boa noção das suas necessidades antes de tentar morder uma configuração como o Puppet, por exemplo.

Há uma boa lista desses tipos de ferramentas na Wikipedia: Comparação de software de gerenciamento de configurações de código aberto .

Estas são as ferramentas que usei no passado, que funcionam bem e têm vários graus de dificuldade para configurá-las e executá-las.

Do acima mencionado eu usei a maioria deles e posso dizer que provavelmente Capistrano e / ou Chef seria bom para começar. Mas como eu disse, eu provavelmente faria a abordagem dos scripts de shell primeiro, e então começaria a pensar em uma dessas soluções a longo prazo.

opções mais leves

Se as opções acima ainda forem muito pesadas, também existem ferramentas, como myrpm . É essencialmente um frontend para rsync e ssh , mas permite que você opere em um grupo de servidores que você configura em um arquivo de texto. myrpm fornece comandos como:

  • putKey
  • deployKeys
  • mass-rsync
  • mass-ssh-remote-exec
  • mass-ssh-remote-cmd

Eles permitem que você envie chaves ssh para os vários hosts, envie arquivos para eles, inicie comandos remotos nos servidores e inicie comandos únicos, como yum -y update .

Referências

por 18.06.2013 / 20:30