gpt4 book ai didi

windows - 如何在没有 Chef 服务器的情况下运行 Chef ( Chef solo/Chef 零)

转载 作者:可可西里 更新时间:2023-11-01 14:44:57 30 4
gpt4 key购买 nike

我有一套用于配置 Web 和 SQL 服务器的说明书,它们目前在我们的持续部署管道中使用。我希望开发人员能够使用相同的 Recipe 来设置他们的本地开发环境,而无需在 Chef 服务器上注册每台开发机器。似乎可以使用零号 Chef 来完成此操作,但是我在开始使用它时遇到了一些麻烦。

我有一个 chef-repo 文件夹,里面有我的 Recipe ,我正在关注 steps in this article .

PS C:\Temp\chef-repo> tree .
Folder PATH listing
Volume serial number is 3E77-463C
C:\TEMP\CHEF-REPO
└───cookbooks
└───test
└───recipes
PS C:\Temp\chef-repo> cat .\cookbooks\test\recipes\default.rb
file "C:\Temp\test.log" do
content 'HELLO WORLD'
end

但是,当我运行 chef-client -z -o test 时,它似乎无法找到我的 Recipe 。

这是我得到的错误:

Starting Chef Client, version 11.16.0
[2014-09-25T10:17:37-05:00] WARN: Run List override has been provided.
[2014-09-25T10:17:37-05:00] WARN: Original Run List: []
[2014-09-25T10:17:37-05:00] WARN: Overridden Run List: [recipe[test]]
resolving cookbooks for run list: ["test"]

================================================================================
Error Resolving Cookbooks for Run List:
================================================================================

Missing Cookbooks:
------------------
No such cookbook: test

Expanded Run List:
------------------
* test


Running handlers:
[2014-09-25T10:17:37-05:00] ERROR: Running exception handlers
Running handlers complete
[2014-09-25T10:17:37-05:00] ERROR: Exception handlers complete
[2014-09-25T10:17:37-05:00] FATAL: Stacktrace dumped to C:/Users/username/.chef/local-mode-cache/cache/chef-stacktrace.out
Chef Client failed. 0 resources updated in 25.375311 seconds
[2014-09-25T10:17:38-05:00] FATAL: Net::HTTPServerException: 412 "Precondition Failed "

我从 C:\Temp\chef-repo 运行此命令,这是我的 Chef 存储库文件夹的根目录。我还尝试修改我的 %USERPROFILE%\.chef\knife.rb 以包含以下设置:

cookbook_path [
"C:\Temp\chef-repo\cookbooks"
]
local_mode true
node_name "Chef.example.com"

我做错了什么?

最佳答案

出了什么问题是你的conf指定

cookbook_path [
"C:\Temp\chef-repo\cookbooks"
]

这可能会在加载 knife.rb 时被 ruby​​ 解释为 C:Tempchef-repocookbooks\ 替换为 / 或 double他们 \\

knife.rb 是一个 ruby​​ 文件并被解析为 ruby​​ 代码。

与许多编程语言一样,\ 用于转义下一个字符。

精确编辑:

始终使用正斜杠,这样可以避免错误, Chef 会在复制命令等需要时用正确转义的反斜杠替换它们。

您唯一会使用反斜杠的地方是带有 heredoc 语法的批处理资源,也许您无论如何都必须转义它们(不确定是否需要转义)

关于windows - 如何在没有 Chef 服务器的情况下运行 Chef ( Chef solo/Chef 零),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26042642/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com