gpt4 book ai didi

ruby - Chef 执行 block

转载 作者:数据小太阳 更新时间:2023-10-29 07:50:02 26 4
gpt4 key购买 nike

我是 Chef 的新手。我有一个安装 sendmail 的方法,它会执行我的配置。我注意到 Chef 会在每次运行时重新启动服务。那是因为我正在运行调用 session 重新启动的 execute

看起来像这样:

execute "hashAccess" do
command "makemap hash /etc/mail/access < /etc/mail/access"
notifies :restart, "service[sendmail]"
end

只有当 access 文件更新时,我才需要调用它。

template "/etc/mail/access" do
source "access.erb"
mode "0644"
notifies :run, "execute[hashAccess]"
end

当文件更新时,execute 被调用两次。这两种资源都在同一个配方中,当我尝试 define hashAccess 时出现错误

 ERROR: Cannot find a resource for define on amazon version 2013.09

如何使执行资源仅在调用时运行?

最佳答案

您应该将action :nothing 添加到您的执行资源中。

execute "hashAccess" do
command "makemap hash /etc/mail/access < /etc/mail/access"
action :nothing
notifies :restart, "service[sendmail]"
end

这样它就不会被执行,除非被其他资源通知。

关于ruby - Chef 执行 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21383897/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com