Eu não acho que isso seja possível, o puppet calcula um md5 do arquivo para verificar se há alterações no arquivo. É possível escrever a hora de início para outro arquivo?
Existe uma maneira de ignorar parte de um arquivo modelo?
Eu tenho um serviço que tem um arquivo de configuração e cada vez que o serviço é iniciado, ele grava a hora de início no arquivo de configuração. Isso faz com que o puppet detecte uma alteração e, como eu o notifico, ele reiniciará o serviço. Não quero que o fantoche reinicie o serviço logo depois de iniciá-lo.
Então, existe uma maneira de fazer um fantoche ignorar parte de um arquivo de modelo?
Eu não acho que isso seja possível, o puppet calcula um md5 do arquivo para verificar se há alterações no arquivo. É possível escrever a hora de início para outro arquivo?
Minha solução é semelhante à do Zoredache, mas varia ligeiramente porque você não precisa de um script inteligente para fazer a comparação.
Digamos que seu arquivo de configuração seja /etc/my_application.conf
e seja assim:
start_time=<some value set by application on start-up>
option1=VALUE
...
No fantoche, adicione um arquivo aos arquivos / para o seu arquivo de configuração, que se parece com:
start_time=DummyValue
option1=VALUE
...
Em seguida, use um manifesto que implanta o arquivo em um local alternativo e, se houver alterações, acionará uma cópia que acionará o serviço, da seguinte forma:
file { '/etc/my_application.staging.conf':
ensure => present,
source => 'puppet:///modules/my_application/my_application.conf',
owner => ...
notify => Exec['install-my_application.conf'],
}
exec { 'install-my_application.conf':
refreshonly => true,
command => '/bin/cp /etc/my_application.staging.conf /etc/my_application.conf',
notify => Service['my_application'],
}
service { 'my_application':
...
}
Isso permite que você reinicie em novas alterações de configuração, mas não reiniciará o serviço se my_application.conf for modificado localmente. Esta não é uma solução perfeita porque não salva você de modificações locais, mas esperamos que você possa gerenciar aqueles com permissões e um aviso claro na parte superior do arquivo de configuração.
Tags puppet