我有一套为web和SQL服务器配置的食谱书,目前在我们的持续部署流程中使用。我希望开发人员能够使用相同的食谱书来设置他们的本地开发环境,而不需要向Chef服务器注册每个开发机器。似乎可以使用Chef Zero来实现这一点,但是我在开始使用它时遇到了一些问题。
我有一个chef-repo文件夹,其中包含我的食谱书,我正在按照这篇文章中的步骤进行操作。
我有一个chef-repo文件夹,其中包含我的食谱书,我正在按照这篇文章中的步骤进行操作。
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
时,似乎无法找到我的cookbooks。
这是我收到的错误信息:
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"
我做错了什么?