Como configurar ou espelhar minha instalação do Ubuntu em outras máquinas dev?

1

Eu tenho muitos pacotes e configurações feitos para configurar minha máquina dev. Eu tenho outros desenvolvedores na minha equipe e quero que eles tenham a mesma configuração para começar a garantir compatibilidade e disponibilidade de ferramentas.

Como eu automatizo a configuração das outras máquinas dev?

Eu encontrei Puppet e Chef, que fazem o mesmo para vários servidores. Eu não hesitarei em aprendê-las ou usá-las, a menos que sejam excessivas para o meu caso de uso.

Eu também achei a Remastersys para repetir a minha instalação com um disco ao vivo personalizado, mas estou ansioso para:

  • Executar minha configuração em sistemas já instalados.
  • Seja distro agnóstico.
  • Remastersys não parece se encaixar.

Então, que ferramenta eu devo analisar para que isso seja feito?

Exemplo de caso de uso:

  • Deseja que pacotes x, y, z sejam instalados após uma nova instalação do Ubuntu ou Arch.
  • Posso ir para distro agnóstico? [Dando aos meus desenvolvedores a escolha da distro - ainda mantendo os mesmos pacotes sem esforço extra.]
  • Configure servidores simples como MySQL ou PostgreSQL.
  • Frequentemente, utilizaram ferramentas como o Meld, o Google Chrome, o Firefox, etc.

Meu caso de uso não é um caso de uso do tipo servidor. Tudo que eu quero é repetir minha configuração, mantendo-me desacoplado dos detalhes do sistema subjacente.

O shell script pode ser uma opção, mas é realmente difícil manter algo tão baixo como um shell script.

Suponho que este seja um problema geral para resolver. Deve haver algo que eu esteja sentindo falta.

    
por Yugal Jindle 28.04.2013 / 08:40

1 resposta

3

Você precisa de algum tipo de gerenciamento de configuração. Fantoche, Chef, CFengine, um desses. A configuração básica de cada um é um pouco trivial, mas eles se tornam complexos muito rapidamente. Existem muitos How-To diferentes para cada um.

NÃO vá distro agnóstico. É bom poder usar distribuições diferentes, mas não espere compatibilidade. Diferentes distros têm versões diferentes de apache, php, mysql, etc., etc., etc. Para ser independente de distro, você precisa estar preparado para empacotar E manter esses pacotes para cada distribuição (para manter seu software crítico na mesma versão em distros .)

Eu sei que você está perguntando especificamente sobre seu ambiente de desenvolvimento aqui, mas também é importante manter seu ambiente de produção em sincronia com seu ambiente de desenvolvimento. Ninguém gosta de enviar código para o ambiente de produção apenas para descobrir que você está desenvolvendo uma versão de biblioteca que ainda não viu a luz do dia em produção. Manter os diferentes ambientes em sincronia é essencial para reduzir o tempo de inatividade.

    
por 28.04.2013 / 08:55