0

我试图找到管理并非所有操作系统平台都可用的依赖项的最佳方法。我们的食谱是跨平台的,它同时针对 Linux 和 Windows 系统。然而,我们最近的一项要求是添加仅在 Linux 上需要的功能。

正常情况下,我会在metadata.rb中使用“ depends ”行来根据需要指定单独的说明书。例如:

depends 'hostfile_edit', '=0.1.2'

出于安全原因,我们的 Chef 系统分为两个不同的组织 - Windows 和 Linux。但是,在这种情况下,“hostfile_edit”说明书仅在 Linux 组织上可用。因此,当我们在 Windows 上运行rake 单元时,我们会遇到失败,因为 Chef 无法引用这本其他食谱。rake 单元在Linux 系统上运行时运行良好。同样,在部署中使用说明书时,在 Windows 上会出现故障,但在 Linux 上不会。

4

1 回答 1

0

答案就在 metadata.rb 文件中,你可以这样添加

%w( aix amazon centos fedora freebsd debian oracle mac_os_x redhat suse opensuseleap ubuntu windows zlinux ).each do |os|
  supports os
end

您可以在https://docs.chef.io/config_rb_metadata/阅读更多相关信息

于 2020-11-30T13:55:23.300 回答