Eu tenho o seguinte manifesto do Puppet:
# PHP Configuration
class php {
exec { "php5enmod $module":
path => "/usr/sbin",
command => "php5enmod $module",
}
file {'/etc/php5/conf.d/upload_limits.ini':
ensure => present,
owner => root, group => root, mode => 444,
notify => [ Exec["php5enmod upload_limits"], Service["apache2"] ],
content => "post_max_size = 16M \nupload_max_filesize = 16M \n",
}
file {'/etc/php5/conf.d/memory_limits.ini':
ensure => present,
owner => root, group => root, mode => 444,
notify => [ Exec["php5enmod memory_limits"], Service["apache2"] ],
content => "memory_limit = 256M \n",
}
}
include php
Como posso criar exec
para usar notify
passando o parâmetro dinamicamente? É algo possível ou existe outra maneira melhor de fazer isso?
O código atual me dá erros como:
Erro: Não foi possível encontrar o Exec dependente[php5enmod upload_limits] para o arquivo[/etc/php5/conf.d/upload_limits.ini]
Quando está em execução, o
exec
primeiro é declarado.Nesse ponto, $module não está definido, então o título exec é
php5enmod
.Você não está passando uma variável aqui, isso é apenas um nome.
Nesse caso, um tipo definido faz mais sentido.
Assim:
Normalmente, o
define
não deveria estar lá.Provavelmente deve ser
php::php5enmod()
e ter seu próprio arquivo.Isso é apenas para mostrar o conceito geral.
Inverta seu pensamento! Use
Subscribe
para vincular seu nome variávelExec
(forma incorreta, IMHO) ao arquivoFile
.Subscribe and Notify
são gratuitos; eles fazem a mesma coisa, mas em direções diferentes.Tente algo assim ?
Completamente não testado, mas acho que vai ajudar você a começar pelo menos ...