Chef infra 厨师无法解析我的烹饪书名称。连名字都错了
我想把我的一个食谱写进食谱里。厨师找不到它。下面是我的树。我试过的命令是Chef infra 厨师无法解析我的烹饪书名称。连名字都错了,chef-infra,Chef Infra,我想把我的一个食谱写进食谱里。厨师找不到它。下面是我的树。我试过的命令是 sudo chef-client --local-mode -runlist "recipe[apache::server]" 我甚至试过用烹饪书的路径 sudo chef-client --local-mode -runlist "recipe[cookbooks/apache::server]" 下面是我得到的错误。奇怪的是,它在错误中显示的烹饪书的名称是unlist,这不是我的烹饪书的名称。我的食谱名字是apac
sudo chef-client --local-mode -runlist "recipe[apache::server]"
我甚至试过用烹饪书的路径
sudo chef-client --local-mode -runlist "recipe[cookbooks/apache::server]"
下面是我得到的错误。奇怪的是,它在错误中显示的烹饪书的名称是unlist
,这不是我的烹饪书的名称。我的食谱名字是apache
[vagrant@localhost ~]$ sudo chef-client --local-mode -runlist "recipe[apache::server]"
[2017-06-18T07:24:32+00:00] WARN: No config file found or specified on command line, using command line options.
Starting Chef Client, version 12.14.89
resolving cookbooks for run list: ["unlist"]
================================================================================
Error Resolving Cookbooks for Run List:
================================================================================
Missing Cookbooks:
------------------
No such cookbook: unlist
Expanded Run List:
------------------
* unlist
Platform:
---------
x86_64-linux
Running handlers:
[2017-06-18T07:24:34+00:00] ERROR: Running exception handlers
Running handlers complete
[2017-06-18T07:24:34+00:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 01 seconds
[2017-06-18T07:24:34+00:00] FATAL: Stacktrace dumped to /root/.chef/local-mode-cache/cache/chef-stacktrace.out
[2017-06-18T07:24:34+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2017-06-18T07:24:34+00:00] ERROR: 412 "Precondition Failed"
[2017-06-18T07:24:34+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
树形结构
[vagrant@localhost ~]$ tree
.
|-- cookbooks
| `-- apache
| |-- Berksfile
| |-- chefignore
| |-- metadata.rb
| |-- README.md
| |-- recipes
| | |-- default.rb
| | `-- server.rb
| |-- spec
| | |-- spec_helper.rb
| | `-- unit
| | `-- recipes
| | |-- default_spec.rb
| | `-- server_spec.rb
| `-- test
| `-- recipes
| |-- default_test.rb
| `-- server.rb
|-- delete.rb
|-- hello.rb
|-- hellotodelet.rb
`-- nodes
`-- localhost.json
好的,我想我找到了答案,但只是部分。因此,我已经在不使用
运行列表的情况下单独执行了配方。因此,安装了软件包,并启动和运行了服务
sudo chef-client --local-mode cookbooks/apache/server.rb
所以它不起作用。不知道为什么。我以为食谱应该是幂等的。无论如何,后来我写了另一个卸载和禁用软件包和服务的方法。当我重新运行服务器.rb
时,它工作了
仍然不确定,尽管它无法选择第一次。但是,一次又一次地运行它会使它以同样的方式工作。因此,执行一个菜谱和执行烹饪书中的菜谱之间肯定有一些区别。问题是,你有一个破折号,你需要两个破折号:--runlist
这不正确,你只是回避了这个问题。是的,我后来发现了这一点,并意识到了我的错误。Thnx