gpt4 book ai didi

linux - 如何在 SUSE os 的 Chef 中制作一个 Chef Recipe 是幂等的

转载 作者:太空狗 更新时间:2023-10-29 11:49:20 24 4
gpt4 key购买 nike

我已经为 SUSE 编写了一个 chef Recipe ,用于安装一个 package,其中正在安装它,但是每次当 chef-client 时它都会运行 enable 命令运行,即使配置没有变化。

Recipe 示例:

zypper_package 'apache2' do
action :install
end

service 'apache2' do
action [:enable, :start]
end

请指教,如何让它幂等

最佳答案

我在使用 SuSE 时遇到过这种情况。至少对于我正在使用的 Chef 版本(12.13,不确定较新的版本) 似乎初始确定错误,因此查看服务是否已启用的内部测试无法正常工作.

最有趣的是,我发现在 SLES 11 上工作的提供商是 Chef::Provider::Service::Redhat。我必须同时支持 11 和 12,所以我最终在资源定义中使用了 if block

service 'apache2' do
action [:enable, :start]
if node['init_package'] != 'systemd'
provider Chef::Provider::Service::Redhat
end
end

我只是花了 30 分钟的大部分时间翻阅我所有的 Recipe ,试图找到原作,但没能成功,我只是确认 SLES SP4 表现出您描述的行为,并且上面的内容修复了它

-----> Converging <default-sles-11-sp4>...
Recipe: apache_test::default
* zypper_package[apache2] action install (up to date)
* service[apache2] action enable (up to date)
* service[apache2] action start (up to date)

关于linux - 如何在 SUSE os 的 Chef 中制作一个 Chef Recipe 是幂等的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46974796/

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