【问题标题】:Only execute service once despite number of notifies in Chef尽管 Chef 中有很多通知,但只执行一次服务
【发布时间】:2017-05-23 13:07:01
【问题描述】:

我目前通过 Chef 中的模板创建了两个文件。这两个模板当前都会在修改时通知服务。

template '/etc/file1' do
    source 'file1.erb'
    owner 'root'
    group 'root'
    mode '644'
    notifies :restart, 'service[foo]'
end

template '/etc/file2' do
    source 'file2.erb'
    owner 'root'
    group 'root'
    mode '600'
    notifies :restart, 'service[foo]'
end

service "foo" do
    action :nothing
end

有没有一种方法可以让我仅在这些文件中的任何一个发生更改时才调用该服务?这样做的原因是,如果两个文件都被更改,我想避免执行两个“foo”实例。

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

    在您的示例中,“foo”服务只会收到一次通知(并且只执行一次),并且只有在任何文件发生更改时才会通知。完全符合您的预期。

    【讨论】:

    • 再添加一位:默认notification timing:delayed。如果您想要多次重启,可以使用:immediate(ly)
    • 哦,这真是太棒了!很好的补充说明了多次重启以及@StephenKing。非常感谢你们! :)
    猜你喜欢
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 2021-10-20
    • 2023-03-10
    • 2016-02-08
    相关资源
    最近更新 更多