Nome do recurso “notificada por” do recurso “notificado” no fantoche

2

Digamos que eu tenha esse bit de manifesto no Puppet:

file { "/whatever/file":
    notify => Exec["some_script"]
}

Existe uma maneira de obter "/ whatever / file" de "some_script"? Ou, em outras palavras, como posso obter o nome de um recurso que notifica outro do notificado?

O caso de uso é o seguinte: estamos usando o git para rastrear alterações em / etc e gostaríamos que o Puppet confirmasse automaticamente os arquivos que eu modifico de um manifesto. Para isso, usarei um recurso "exec" que é notificado por cada recurso de "arquivo" que modifica arquivos em / etc. Mas eu preciso saber qual arquivo foi modificado para confirmar apenas isso e evitar fazer um "commit -a" cego.

Claro, se houver uma maneira melhor de fazer isso, estou aberto a sugestões.

    
por rsuarez 26.12.2013 / 10:45

1 resposta

1

Enquanto você poderia criar uma classe com parâmetros e, em seguida, passar uma matriz de nomes de arquivo para essa classe para usar como o nome do arquivo, eu sugeriria contra ela.

Modelos seriam uma abordagem muito melhor.

file {'/etc/sshd/conf':
   content => template('foo/ssh-conf.erb'),
}

Então, quando você precisar fazer uma alteração, edite o modelo ssh-conf.erb e ele será enviado para todas as máquinas.

Em geral, declarações exec em fantoches devem ser usadas como último recurso. Os modelos de arquivos e os recursos do augeaus são muito mais simples e são igualmente poderosos.

Além disso, sugiro contra scripts gerenciando arquivos no git.

    
por 28.04.2014 / 23:57

Tags