Recursos de cache de fantoches

1

Estou tentando depurar um problema de cache com o Puppet no RedHat 7. Minhas versões estão no final desta questão.

Abaixo está um trecho do meu manifesto site.pp . Está tudo bem e a verificação do Nagios está instalada no nó foo.example.com .

node 'foo.example.com' {

  nagios::service {'my_database':
    check_command => 'check_tcp_nrpe!3306',
    service_description => 'My Database',
  }

}

Agora, se eu adicionar outro nagios::service check em site.pp , ele também será escolhido por

puppet agent --noop --test

mas se eu remover a mesma chamada de nagios::service e executar o agente novamente, ele ainda o verá (essas são execuções secas - não entendo por que ele está em cache). Isso vem acontecendo em muitos cenários diferentes em vários manifestos. Se eu remover o puppetdb e executar o agente, o puppetdb será recriado e tudo voltará ao normal por um tempo.

Alguma sugestão sobre onde procurar antes de eu descer a rota de atualização do fantoche ou reinstalar a versão mais recente? Não tenho certeza de quais outras informações fornecer, então, por favor, deixe-me saber se há algo que possa ajudar.

Minhas versões,

puppetlabs-release-7-12.noarch
puppet-server-3.8.6-1.el7.noarch
puppetdb-terminus-2.3.8-1.el7.noarch
puppet-3.8.6-1.el7.noarch
puppetdb-2.3.8-1.el7.noarch

Atualização 1

Abaixo está a saída da execução de # puppet agent --noop --test ,

# puppet agent --noop --test
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for foo.example.com
Info: Applying configuration version '1522355276'
.
.
.
Notice: /Stage[main]/Nagios::Server/Nagios::Service_file[/etc/nagios/conf.d/services/foo-my_database_nagios_service.cfg]/File[/etc/nagios/conf.d/services/foo-my_database_nagios_service.cfg]/ensure: current_value absent, should be present (noop)
.
.
.
Notice: Finished catalog run in 21.10 seconds

O aviso de que esse arquivo deve estar presente é falso.

Tudo o que fiz foi adicionar

nagios::service {'my_database':
    check_command => 'check_tcp_nrpe!3306',
    service_description => 'My Database',
}

execute o agente, remova-o e execute o agente novamente. Toda vez que eu executo o agente, ele ainda acha que a verificação deve estar presente mesmo que não esteja definida em nenhum dos meus manifestos.

Atualização 2

Estas são as etapas que uso para remover o item em cache. Depois de executar essas etapas, ele não tenta mais adicionar my_database check.

cd /var/lib/puppetdb
sudo mv db db.'date +%F' # create a backup
sudo systemctl restart puppetmaster
sudo systemctl restart puppetdb
    
por wsams 29.03.2018 / 23:08

1 resposta

0

Esta questão acaba por estar relacionada com o que eu estava fazendo em "Update 2". Quando o puppetdb foi excluído, ele perdeu o controle de todos os seus recursos. Uma vez que puppet agent --test --noop foi executado em todos os nossos servidores, ele sabia onde encontrar os recursos e tudo poderia ser encontrado no catálogo.

Basicamente, uma vez que o puppetdb é deletado, você deve executar puppet agent --test --noop em todos os hosts.

    
por 07.04.2018 / 02:15