【发布时间】:2015-11-10 16:10:57
【问题描述】:
我已经开始在 Windows 上试用 Chef(尽管我认为操作系统不一定与此相关),但我遇到了一个难题。
我正在学习“入门”教程,该教程建议我从 GitHub 克隆一个 Chef 存储库。但是,此存储库的自述文件指出不建议这样做,而是建议运行chef generate repo,所以我这样做了。在我的主目录中,我运行chef generate repo chef_repo 并得到(看起来像)几乎相同的文件和目录。太好了。
我得到的目录之一是 .chef 目录,(据我了解)我将在其中放置各种文件。我遵循的教程建议我将 .chef 目录放在我的 .gitignore 文件中。好的,没关系。
在学习本教程的过程中,我发现了knife.rb 文件的文档,其中指出knife 默认情况下期望knife.rb 文件位于~/.chef 中。这对我来说似乎很奇怪,因为很明显 .chef 目录应该在 chef 存储库中(GitHub 示例存储库和 chef 生成的存储库都有这种方式),除非 Chef 期望我的整个主目录将是Git 存储库和 Chef 的 Git 存储库。
knife.rb 文件应该放在哪里?拥有多个 .chef 目录是“标准做法”吗?从不提供默认的knife.rb文件是“标准做法”吗?
【问题讨论】:
-
"~/.chef" 或 "$HOME/.chef" 或 "%HOME%/.chef" 是厨师配置文件的默认位置(取决于操作系统)。或者,当运行刀命令时,它们可以位于用户本地的“.chef”目录中。文档中都有解释:docs.chef.io/config_rb_knife.html
-
是的,我提到过。这不是答案,而是问题的一部分。
-
配置文件的存放位置由您决定。就个人而言,我喜欢将我的配置集中在一个地方,并使用刀块插件在厨师服务器之间切换。其他人更喜欢在与每个厨师服务器关联的每个厨师存储库中创建一个 .chef 目录。完全取决于你。如果您选择后一种方法,建议将 .chef 添加到忽略文件中,这样它就不会提交到您的存储库中,为什么?在回购中拥有私钥是个坏主意。是的......你已经在你的问题中陈述了这一切。您掌握了所有信息,我希望这个观点对您有所帮助。
-
与多个厨师服务器一起工作是否常见?
-
对我来说是 :-) 您需要的厨师服务器数量最终取决于您的组织流程。一般来说,您可能至少有两个:生产和非生产。限制对生产系统的访问并不少见。最后,您可能希望拥有一个或多个额外的开发厨师服务器(尽管像厨师零这样的工具允许开发人员在本地运行厨师服务器)。
标签: windows chef-infra