Sou relativamente novo no Puppet e herdei recentemente uma infraestrutura muito grande (o Puppet 3.6 em várias máquinas do RHEL 6).
Minha infra-estrutura de fantoches parece um pouco assim:
Eu tenho my_module :: mysql, que instala e configura o MySQL (baseado em parâmetros passados para ele do Dashboard ou outras classes que o incluem). Entre muitas outras coisas, ele define o local dos arquivos de log. (Há várias outras classes como essa e, às vezes, essa classe pode ser chamada de algumas maneiras diferentes no mesmo nó.)
Agora eu tenho o my_module :: flume, que instala e configura o Apache Flume para que eu possa enviar alguns logs em outro lugar.
Meu problema: eu preciso do my_module :: flume para saber onde cada instância do my_module :: mysql coloca seus arquivos de log, para que ele possa adicioná-los ao arquivo de configuração do Flume.
Qual é a melhor maneira de fazer isso? Eu acho que eu quero ser capaz de adicionar a algum tipo de recurso (uma variável global ou um arquivo) que cada classe pode adicionar um caminho de arquivo, assim my_module :: flume pode iterar através da lista e adicionar cada caminho para um arquivo de configuração , mas não sei como fazer isso enquanto ainda garanto que:
-A lista de arquivos de log é iniciada toda vez que o Puppet é executado (assim, por exemplo, arquivos de log que não existem mais ainda não estão na lista.)
-A classe Flume é avaliada somente depois que todas as outras classes adicionaram os caminhos à lista.
Qualquer entrada seria apreciada.