No Puppet, para executar um comando, use o recurso exec
. Para certificar-se de que seu comando seja executado somente se um determinado arquivo não existir, especifique a opção creates
.
Por exemplo:
exec { "create_needed_directory":
command => "/bin/mkdir -p /tmp/needed/directory",
creates => "/tmp/needed/directory"
}
Se você precisar executar uma verificação mais complicada, use a opção onlyif
:
exec { "run_account_purger":
command => "/usr/local/sbin/account_purger",
onlyif => "grep -c old_account /etc/passwd",
}
Ambos os exemplos foram retirados de PuppetCookBook .
Para ser honesto, não tenho idéia se essa é a melhor maneira de gerar chaves para o NTP. Você pode também gerar todas as chaves em uma máquina, colocá-las em um repositório de fantoches e distribuí-las por meio de um recurso file
. Isso pode ser um pouco mais seguro, porque dessa forma você não precisa expor a senha.