Seu problema é que seu install_options
só será usado se o recurso do pacote estiver realmente instalando seus pacotes. Você tem algumas opções:
- Use
ensure => latest
e espere por uma atualização de pacote (ou faça você mesmo) - provavelmente não é o que você quer. - Atualizando para o Puppet 4.x. Desde a versão 4, o Puppet tem reinstall_on_refresh , que permite a reinstalação em um
notify
event, se o provedor suportarreinstallable
. Enquanto isso funciona no Debian, esta opção provavelmente não é utilizável para você. - Trick Puppet pensa que o pacote foi desinstalado - isso precisaria de um patch de boneco em sua instalação local, não é recomendado.
- Patch Puppet com recursos de reinstalação: Em este relatório de bug de alguns anos atrás, Aggelos Economopoulos forneceu um patch para alguma versão do fantoche, que parece bastante simples. Isso deve começar. Eu não recomendo remendar suas instalações de agentes fantoches.
-
Reinstale-se: Provavelmente a única opção que você tem agora: Escreva algo ao longo destas linhas:
exec { "apt-get reinstall $package $your_options": user => 'root', onlyif => 'dpkg -s $package| grep 'Version $your_version' }
Dependendo das diferenças dos pacotes com e sem opções, isso pode ser arbitrariamente difícil. Se apenas um punhado de pacotes for afetado, pode ser gerenciável.
-
Escreva seu próprio provedor e adicione-o a
package
ou estabeleça algo comopackage_reinstall
: é surpreendentemente fácil, pode ser gerenciado e versionado por meio de um módulo e funciona sem uma atualização do Puppet. Sugiro começar com provider / package / apt.rb . Esta pode ser a sua melhor opção, afinal.