Que tal fantoche ? Ou um de seus concorrentes, como o Chef.
Como um bônus adicional, ele pode ser usado para empurrar os arquivos de configuração também. E certifique-se de que os serviços corretos estão funcionando. etc E você pode mudar de idéia mais tarde para adicionar pacotes e fantoche vai cuidar disso para você.
O código se parece com algo assim (mas de preferência se espalha em alguns módulos, etc.):
node foo { include webserver }
node bar { include webserver }
node baz { include imapserver }
node hmm { include smtpserver }
class webserver {
package {
[ "apache2", "mod_ssl", "php5", "php5-cli" ]:
ensure => present;
}
}
class mailserver {
package {
"ldaplibraries":
ensure => present;
}
}
class imapserver {
include mailserver
package {
"dovecot":
ensure => present;
}
}
class smtpserver {
include mailserver
package {
"exim":
ensure => present;
}
}
Adicione alguns tipos de file { "/etc/exim.conf": source => "puppet:///smtpserver/exim.conf"; }
e service { "exim": ensure => running, enable => true; }
lá e você pode ter apenas uma solução completa, não apenas uma solução de gerenciamento de pacotes.