para as coisas que você menciona, manter uma configuração no meu repositório, eu uso fantoche link ideal porque o boneco é configurado não como capistrano, onde você diz como no fantoche, você diz o que, e o fantoche faz o trabalho.
Usamos o Chef para configurar nossos servidores, mas estou procurando uma maneira de consolidar as dependências do servidor em um único arquivo de configuração que resida no controle de origem.
Usamos capistrano para implementações, um script de compilação personalizado para integração contínua e agora queremos que uma pesquisa do Nagios verifique se todas as dependências estão presentes (rvm instalado, versão correta do ruby, gems instaladas, etc.)
Isso significa que estaríamos duplicando a configuração de dependência em 3 locais e gostaria de refatorar isso. Eu quero poder usar o mesmo código tanto do meu script de implantação quanto do meu script de construção, para lidar com a instalação de pacotes e a configuração do ambiente. Nós estávamos pensando em usar nossos scripts capistrano dentro do script de construção, mas isso parece muito complicado. Também estou procurando código que possa inspecionar o ambiente e verificar se ele atende aos requisitos do aplicativo.
Eu imagino que a configuração seria algo como .environment.yml no diretório raiz do aplicativo. Os scripts podem ser algo como './script/environment setup' e './script/environment check'.
Estou postando isso como uma pergunta porque não quero reinventar a roda. Gostaria de perguntar se já existe uma convenção ou se alguém tem sugestões melhores.
para as coisas que você menciona, manter uma configuração no meu repositório, eu uso fantoche link ideal porque o boneco é configurado não como capistrano, onde você diz como no fantoche, você diz o que, e o fantoche faz o trabalho.
Você poderia (e provavelmente deveria) usar as declarações de receita include
em seus aplicativos Ruby.
Se você estiver falando sobre gemas obrigatórias, inclua um arquivo gemfile em sua inscrição.
Um dos problemas com o Chef (e provavelmente também com o Puppet) é que existem muitas maneiras "certas" de fazer as coisas, e é difícil saber qual é a "mais correta" para a sua situação.