Instalando pacotes com dependências usando o fantoche

4

Eu sou novo em puppet , para o processo de aprendizado, criei Puppet Master e Puppet Slave setup e configurei um módulo mysql para instalar o mysql em Puppet client . Abaixo está o arquivo de manifesto.

class mysql {
    package { ["mysql-server-5.5", "libaio1", "libdbd-mysql-perl", "libdbi-perl", "libhtml-template-perl", "libmysqlclient18", "mysql-client-5.5", "mysql-common", "mysql-server-core-5.5"]:
    ensure => present,
    allowcdrom => 'true',
    }
}

O recurso package contém todas as dependências do mysql-server. Mas estou recebendo o erro abaixo.

Building dependency tree...
Reading state information...
The following extra packages will be installed:
  mysql-common
The following NEW packages will be installed:
  libmysqlclient18 mysql-common
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 738 kB of archives.
After this operation, 3513 kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  mysql-common libmysqlclient18
E: There are problems and -y was used without --force-yes
Error: /Stage[main]/Mysql/Package[libmysqlclient18]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install libmysqlclient18' returned 100: Reading package lists...

Eu também tentei adicionar install_options: "--force-yes" , como mencionado na saída do erro, mas ainda entrando no mesmo problema.

Qualquer ajuda sobre isso será apreciada.

    
por Yaalie 15.02.2015 / 15:15

2 respostas

3

Você pode tentar o manifesto abaixo. O problema é que você precisa adicionar as opções -f e --allow-unauthenticated para apt-get para resolver as dependências automaticamente e instalá-las. Depois que esses sinalizadores forem adicionados, não será necessário adicionar todos os pacotes dependentes ao recurso package .

class mysql {
    package { ["mysql-server-5.5"]:
        ensure          => present,
        allowcdrom      => 'true',
        install_options => ['--allow-unauthenticated', '-f'],
    }
}
    
por 17.02.2015 / 10:43
4

Pelo que vejo você está usando o Ubuntu e, portanto, o gerenciador de pacotes Apt. O erro que você está encontrando é devido à instalação de um pacote que não pode encontrar a chave pública para o pacote.

Isso pode ser porque:

  • Você tem uma fonte de pacote que não contém as chaves públicas.
  • Você precisa fazer apt-get update para atualizar suas fontes antes de fazer uma instalação.
  • Ou você precisa importar manualmente a chave.

Você tem duas soluções possíveis:

  • Importar a chave
  • Ignore a chave ausente
  • Ou use o seguinte no Puppet para configurar o Apt para ignorar chaves perdidas.

    class {'::apt': disable_keys: true}

Os itens acima exigem o módulo PppetLabs Apt .

Eu verificaria as primeiras opções antes de desabilitar as chaves. Você não dá detalhes suficientes para ter uma causa / solução precisa, mas o acima deve levá-lo na direção certa.

    
por 15.02.2015 / 15:46