Como você escreve uma documentação / planos de implantação Linux?

3

Eu tenho poucos servidores relativamente pequenos rodando distribuições Linux. Às vezes eu preciso reinstalar 1 ou 2 dos servidores de "desenvolvimento" do zero. Muitas vezes eu esqueço de configurar pequenas coisas, por exemplo. encaminhamento em sysctl.conf ou esqueça de instalar o script de monitoramento de atualização, pacotes não essenciais, mas úteis, etc.

Idealmente, gostaria de ter uma configuração exata entre todos eles.

1) Como você lida com a documentação do processo de 'implantação' para arrumar as coisas? Você pode me dar alguns exemplos?

2) Você usa algumas das ferramentas de implantação populares? Eu olhei para coisas como chef e fantoche, mas eles parecem muito complicados para mim agora. Algo mais simples?

    
por M_1 06.11.2013 / 10:56

4 respostas

1

O que você não gosta de Puppet (ou Chef)? São ferramentas projetadas para fazer exatamente o que você precisa. Se for a complexidade da configuração do cliente / servidor, para qualquer um deles você pode pular a instalação do componente do servidor e apenas executar o cliente no modo "autônomo" ou "solo".

    
por 20.11.2013 / 02:26
0

Estou finalmente mudando para um sistema Chef para autoescala / descoberta, mas agora eu realmente controle o processo de inicialização do servidor diretamente do código-fonte da coisa que eu preciso do servidor para ser implantado. Não tenho certeza se você está na webstack ou se está usando o ruby, mas uma ferramenta muito boa para usar se você é: recapitular (baseado em Capistrano)

Ele permite que você execute scripts em qualquer número de servidores remotos. Ele funciona usando um 'Capfile' para definir seus servidores e tal, e então tem algumas tarefas internas que você pode estender. Uma delas é a tarefa: bootstrap. Então eu tenho uma cadeia simples ao provisionar novos servidores de

      before 'bootstrap', 'bootstrap:dependencies'

...

      namespace :bootstrap do
          task :dependencies do
              uname = capture('uname -r')
              abort('ENV Not Supported') unless uname.strip == "some uname version"
              sudo('apt-get -y install build-essential')
              run('echo 'America/New_York' | sudo tee /etc/timezone')
          end
      end

...

Isso é apenas uma amostra de algumas coisas que você pode fazer usando os comandos 'capture', 'sudo' e 'run' que a recapitulação fornece a você. Obviamente, este exemplo supõe que o software que você está implementando está vinculado à pilha de ruby, mas o ponto é que existem ferramentas como essa para todos os tipos de linguagens / frameworks.

Minha sugestão é simplesmente vincular o provisionamento do servidor ao código que você está implantando nesse servidor, a menos que você queira usar uma ferramenta como o chef ou o fantoche.

    
por 19.11.2013 / 23:59
0

Alguns scripts bash modularizados simples e oscilantes, como o método rollout e a documentação independente? Até você ir fantoche / chef / somethingelse ...

    
por 20.11.2013 / 05:06
-1

Para ambientes de desenvolvimento, sou um grande fã do Vagrant. É mais simples (IMHO): agradeça ao chef e ao fantoche e basicamente permite que você configure seu ambiente uma vez e, em seguida, reduza-o e restabeleça para o conteúdo do seu coração.

Dê uma olhada; link

Como esta é a segunda pergunta desta semana que eu recomendei o Vagrant, eu só quero dizer que eu não sou afiliado a eles e não recebo nada recomendado!

    
por 06.11.2013 / 11:36