我应该将 msi 文件放在我的食谱中的什么位置?

Where should I put an msi file in my cookbook?

我正在使用 MSI 和 windows_package 资源删除 windows 程序:

windows_package 'SomeShittyProgram' do
  action :remove
  source 'c:\temp\msi'
end

在我的食谱中放一个(小的)MSI 文件安全吗?我怎样才能让厨师将该文件传送到节点?

我会使用 remote_file 从网络位置提取它,但这使得在测试厨房中测试食谱变得困难。

一般来说,我们强烈建议不要这样做(在食谱中存储大型二进制文件),但您可以这样做。将文件放在 ./files/whatever.msi 下,然后在配方代码中使用 cookbook_file "#{Chef::Config[:file_cache_path]}/whatever.msi" do source "whatever.msi" end,然后使用 windows_package 资源进行安装。

不这样做的原因是 Chef 不是一个好的文件存储系统。使用 S3、Artifactory 甚至 HTTP 服务器加上 remote_file 之类的东西可以为您提供更大的灵活性。这往往会使您的 git 存储库迅速膨胀。