在 Chef 中,如何检测 Chef 是否在 Mac 上运行?

Kev*_*rke 1 chef-infra

在我的食谱中,我应该如何检查厨师食谱是否已配置到 Macintosh 机器上?

Mar*_*nor 5

更好的解决方案是使用platform_family检查。将适用于 OS X 和 OS X 服务器(来源OHAI-345)。

cookbook_file "/etc/nginx/nginx.conf" do
  source "nginx.conf"
  not_if platform_family?("mac_os_x")
end
Run Code Online (Sandbox Code Playgroud)

更好的解决方案是让厨师完成所有工作。使用单个cookbook_file声明:

cookbook_file "/etc/nginx/nginx.conf" do
  source "nginx.conf"
end
Run Code Online (Sandbox Code Playgroud)

并将特定于平台的文件与您的食谱一起发送:

  • mycookbook/files/default/nginx.conf
  • mycookbook/files/mac_os_x/nginx.conf
  • mycookbook/files/ubuntu/nginx.conf
  • ..