我可以将 knife.rb 作为参数传递给 knife 命令吗?

Can I pass the knife.rb to the knife command as an argument?

chef-client v12.15.19(MSI 安装程序) 在 Windows 服务器 2012 R2

不必在 knife.rb 所在的目录中,也不必将 knife.rb 放在 knife 查找该配置的预定位置之一,我可以将它作为争论?

示例:knife.bat node list -config_file c:\some\other\place\knife.rb

我很好奇这是否可行,因为我在文档中的任何地方都没有看到它。我知道我可以使用环境变量和其他可能的方法来解决这个问题,但我只是想知道是否有一个参数可以直接传递 knife.rb。

是的,您可以指定不同的配置文件。这是 Chef 12.x 最新版本(撰写本文时)的 knife --help 输出片段:

 -c, --config CONFIG              The configuration file to use
     --config-option OPTION=VALUE Override a single configuration option

所以你应该可以做到 knife -c ...。我经常使用它来为不同的托管 Chef 实例管理不同的 Knife 配置文件。我也没有在任何文档中明确提到它。

是的,您可以指定,但请注意参数顺序。

knife cookbook upload my_test_cookbook -c ./knife.rb 

您只能在主命令完成后指定选项。 同样你可以检查 knife help : 用法:刀子命令(选项)