Ресурс шаблона Chef уведомляет о каждом запуске

У меня есть следующий фрагмент в рецепте:

template "/mnt/application/config/pusher/#{port}.js" do
    owner "root"
    group "root"

    source "pusher/config.js.erb"
    mode "644"

    variables({
        :directory => metricsDir,
        :host => host
    })

    notifies :run, "bash[restart pusher-#{port}]"
end

bash "restart pusher-#{port}" do
    code "supervisorctl restart pusher-#{port}"
    action :nothing
end

Проблема в том, что действие bash запускается каждый раз, даже если конфигурация не меняется:

$ cp /mnt/application/config/pusher/50000.js ~/pre-run.js
$ chef-client
...
[Fri, 27 Sep 2013 09:49:03 +0000] INFO: template[/mnt/application/config/pusher/50000.js] sending run action to bash[restart pusher-50000] (delayed)
[Fri, 27 Sep 2013 09:49:03 +0000] INFO: Processing bash[restart pusher-50000] action run (shm::add_pusher line 96)
pusher-50000: stopped
pusher-50000: started
...
$ diff /mnt/application/config/pusher/50000.js ~/pre-run.js
$ echo $?
0

Таким образом, конфиг остался прежним, но действие, тем не менее, было вызвано. Как это исправить?


person Fluffy    schedule 27.09.2013    source источник
comment
Вы можете дать содержимое config.js.erb? Также вы можете запустить chef-client с уровнем журнала отладки (chef-client -l debug)   -  person kamaradclimber    schedule 29.09.2013
comment
Значит, если содержимое не меняется, значит, меняется что-то еще? Убедитесь, что права владельца, группы и файла остаются прежними.   -  person Draco Ater    schedule 30.09.2013
comment
Спасибо, @kamaradclimber и @Draco Ater, действительно с -l debug я видел, что владелец меняется.   -  person Fluffy    schedule 30.09.2013


Ответы (1)


Судя по всему, владелец файла изменился на 0, о чем свидетельствует флаг -l debug. Содержимое файла действительно осталось прежним.

person Fluffy    schedule 30.09.2013