Instalação do pacote Puppet no Linux / CentOS

2

Eu sou novo no Puppet - ando brincando aprendendo o básico. A maioria dos exemplos (exceto os muito básicos) que estão na página puppet não funcionam para mim - ou alguma dependência é falta ou pacote não foi encontrado. Eu não vejo os logs explicando o que deu errado (mesmo se eu executar a opção --test ou --verbose )

  1. Alguém pode esclarecer como é que o fantoche consegue instalar um determinado pacote de um título (por exemplo, a partir de um manifesto como abaixo:

    class httpd {
          package { 'httpd':
               ensure => installed,
          }
    }
    

    Aqui - a partir de "httpd" - o que acontece quando corremos fantoche aplicar neste manifesto? Onde ele encontra o instalador (ou seja, onde está o repositório - onde ele está configurado?)

  2. Especificamente, estou recebendo este erro:

    err: /Stage[main]/Ntp/Package[httpd]/ensure: change from absent to present failed: Execution of '/usr/bin/yum -d 0 -e 0 -y install httpd' returned 1: Error: failure: repodata/filelists.xml.gz from base: [Errno 256] No more mirrors to try.
    You could try using --skip-broken to work around the problem
    You could try running: package-cleanup --problems
                           package-cleanup --dupes
                           rpm -Va --nofiles --nodigest
    

Como posso corrigir isso?

    
por Bhaskar 31.12.2012 / 15:56

2 respostas

4

Ele está tentando executar o yum para instalar o httpd

 /usr/bin/yum -d 0 -e 0 -y install httpd

Tente executar isso como root, mas tenho certeza que irá falhar, então tente

 /usr/bin/yum clean all
 /usr/bin/yum -d 0 -e 0 -y install httpd

Se isso não funcionar, seus repositórios do yum não estão funcionando, então você terá que corrigir esse arquivo. Provavelmente arquivos em

/etc/yum.repos.d
    
por 31.12.2012 / 16:00
1

Enquanto a resposta de Mike resolve o problema definitivamente - eu faria algo similar através do Puppet.

Por exemplo, como primeiro passo eu adicionaria o seguinte código antes de instalar qualquer pacote

exec {'yum-clean-all':
  command =>  'yum clean all',
  path    =>  '/usr/bin',
  user    =>  'root',
  before  =>  Package[httpd],
}

Da mesma forma, qualquer execução que precise ser feita antes da instalação de pacotes deve ser executada através de um fantoche como um primeiro passo.

    
por 13.01.2015 / 09:17