Por que o Puppet continua instalando um pacote, mesmo que já esteja instalado?

5

Eu uso o atributo install do pacote para garantir que o pacote X esteja instalado.

No entanto, mesmo que o pacote esteja instalado, puppet tenta instalá-lo novamente e, claro, sai com uma exceção ("X já instalado"). Isso não acontece quando o nome do pacote corresponde a um nome de serviço. Eu uso o RPM local e um provedor de RPM.

Como evito essa exceção?

Eu também implementei uma solução alternativa: se eu tiver êxito com a instalação do RPM, eu crio um arquivo chamado /X_DONE . Então eu instalo as dependências com base nesse arquivo, não no pacote.

Qual é a maneira correta de lidar com isso?

EDITAR: Falha no manifesto:

 file {"$tmp_dir/$php_pdo":
   ensure => present,
   source => "puppet:///files/services/$php_pdo"
 }

 package {"php_pdo":
   require => File["$tmp_dir/$php_pdo"],
   ensure => installed,
   provider => rpm,
   source => "$tmp_dir/$php_pdo"
 }

e exceção:

err: /Stage[main]/Apache-php/Package[php_pdo]/ensure: change from absent to present failed: Execution of '/bin/rpm -i --oldpackage /tmp/puppet/php-pdo-5.1.6-27.el5_5.3.x86_64.rpm' returned 1:     package php-pdo-5.1.6-27.el5_5.3.x86_64 is already installed
    
por michal 01.09.2011 / 22:14

2 respostas

9

Você se refere ao pacote pelo nome "php_pdo", mas o Puppet vê o pacote como "php-pdo" (traço, não sublinhado). Toda vez que ele verifica se o php_pdo está instalado, ele descobre que não está. Infelizmente não importa quantas vezes você instale o php-pdo, ele nunca será o php_pdo.

Para resolver o problema, altere a linha:

package {"php_pdo":

para ser:

package {"php-pdo":
    
por 02.09.2011 / 08:13
0

Na verdade, não acho que acima esteja uma resposta correta.

O nome do pacote deve ser encontrado de acordo com o gerenciador de pacotes.

para o Ubuntu

root@Web2:~# dpkg --get-selections | grep php
php-pdo install

nome do pacote seria php-pdo

para centos

[root@centos 2.6.32-71.el6.x86_64-x86_64]# rpm -qa | grep php

precisamos omitir a versão para rpm de acordo com essa referência link

    
por 04.09.2013 / 11:23