Fazendo eco às outras duas respostas: use o sistema de gerenciamento de pacotes existente da sua distribuição.
Fazemos isso com o Ubuntu e apt
para instalar o RabbitMQ e o OAuth assim:
class apt::example {
file { "/etc/apt/sources.list.d/repo.example.list":
source => "puppet:///modules/apt/repo.example.list",
ensure => present,
}
exec {"install-gpg-key":
command => "/usr/bin/curl -s http://repo.example.com/[email protected] | /usr/bin/apt-key add -; /usr/bin/apt-get update",
refreshonly => true,
subscribe => File["/etc/apt/sources.list.d/repo.example.list"],
require => File["/etc/apt/sources.list.d/repo.example.list"],
}
}
e para usar o repositório:
class apache2::platform {
package { ["librabbitmq0", "php5-amqp", "php5-oauth"]:
ensure => installed,
notify => Service["apache2"],
require => File["/etc/apt/sources.list.d/repo.example.list"]
}
[...]
}
O require
aqui garante que o repositório seja adicionado antes de tentarmos instalar qualquer coisa dele.
Pode haver uma maneira melhor de lidar com a adição da chave GPG e de executar e atualizar, pois esse comando retorna um código de saída positivo que faz com que o fantoche pense que ele falhou, mas como funciona eu não gastou muito esforço para corrigir a falsa mensagem de erro.
Eu não tentei adicionar a configuração do repo ao fantoche ou automatizar a compilação e adicionar ao processo de repo para novos pacotes, mas assim que você atingir um certo tamanho, essas tarefas valerão a pena. Os backups sempre valem a pena.
O processo para RPM
e yum
deve ser muito semelhante.