Puppet parece perfeito para o que você está tentando fazer, com a ressalva de que, a partir de agora, não há suporte para o Windows.
No seu caso, você definiria um nó de servidor em termos de todos os pacotes que são idênticos entre as máquinas. Em seguida, você define os hosts individuais como nós que herdam do servidor e configura as coisas exclusivas específicas para ele.
O fantoche é declarativo - permite descrever suas caixas em termos dos recursos que cada caixa deve ter. Então, se você quer ssh
- você escreve uma classe para esse recurso - e dentro da classe você pode incluir a lógica sobre como o ssh é chamado um pouco diferente no FreeBSD vs Ubuntu. Ele também sabe usar yum
dentro do Redhat e apt-get
dentro das distribuições baseadas no Debian, e ports
nos BSDs. Agora, no seu nó Server, você terá apenas uma linha como include ssh
- e o fantoche fará a coisa certa e colocará o SSH na máquina sem que você tenha que lembrar se é o Ubuntu, Redhat ou FreeBSD.
O que é bom é que todas as coisas do Servidor estão em um único lugar - e se em algum ponto você adicionar à definição do nó do Servidor, TODAS as máquinas atualizariam suas configurações de acordo.
Neste momento, estou gerenciando apenas três caixas usando o Puppet - mas já valeu a pena. Depois de passar uma semana arrumando uma caixa que usaremos para apresentação de estímulo em um experimento, o driver da placa de vídeo era muito antigo na versão do Ubuntu que eu coloquei (8.04). Eu tive que instalar o Ubuntu mais recente (9.04), mas depois disso eu tive que executar o apt-get e executar o fantoche - e tudo o que eu tinha passado uma semana configurando foi restaurado.
O Puppet tem uma pequena curva de aprendizado, mas evitei com sucesso o aprendizado do Ruby - eu sei que estou usando, já que é o que o fantoche está escrito - mas até agora eu consegui apenas modificar os exemplos na documentação e as receitas no wiki . Outra desvantagem é que o fantoche demora um pouco mais para fazer as coisas pela primeira vez. A vantagem é que tudo que você altera em todas as suas máquinas é armazenado em um único local - é uma prática padrão manter a configuração dos fantoches em um sistema de controle de versão - para que você possa sempre olhar para trás e ver como configurou os servidores no passado - ou retroceder algumas alterações mal sucedidas.Por fim, aqui está um vídeo rápido que faz uma simples demonstração de fantoches que me ajudou começou rapidamente.