Puppet: como executar um exec apenas se o fantoche tiver feito alterações

4

Estamos fazendo o gerenciamento básico de alguns servidores via fantoche - Os próprios servidores são executados como parte de um sistema em cluster que lida com outros aspectos, como contas de usuário, etc. e incluem um script de monitoramento que detecta alterações em arquivos-chave (/ etc / passwd e gostar). Se o puppet atualiza um pacote, ele potencialmente altera esses arquivos principais, acionando o sistema de monitoramento. (o que não é não intencional)

O sistema de monitoramento tem um comando que pode ser executado manualmente para limpar o estado e temos que fazer isso toda vez que o fantoche aplicar quaisquer alterações, quando começarmos a receber e-mails!

Poderíamos definir um exec que seja executado em um post run_stage para executar o comando, mas isso por padrão seria disparado toda vez que o fantoche fosse executado e, em seguida, nossos relatórios sempre serão exibidos como alterações feitas por fantoches, independentemente de terem sido feitas alterações ou não. / p>

Existe uma maneira de definir o exec de modo que ele só seja executado se o puppet tiver aplicado outras alterações?

    
por anthonysomerset 09.07.2014 / 12:41

1 resposta

3

Se o recurso exec tiver um estágio dedicado, você poderá implementar o comportamento desejado fazendo com que ele se inscreva em todos os outros estágios, por exemplo,

exec { "pacify-rkhunter":
    ...
    subscribe   => Stage['pre','main','aux'],
    refreshonly => true,
}
    
por 09.07.2014 / 16:58