我是Chef的新手,并遵循一个教程,该教程提供有关在食谱或特定食谱中运行默认食谱的信息。我的Cookbook的树输出如下:
pwd
/opt/dk-chef/python_code/Chef
[root@LUMOS Chef]# tree Cookbooks/BasicLinux/
Cookbooks/BasicLinux/
├── Berksfile
├── chefignore
├── LICENSE
├── metadata.rb
├── nodes
│ └── LUMOS.RMT.com.json
├── README.md
├── recipes
│ ├── default.rb
│ ├── nodes
│ │ └── LUMOS.RMT.com.json
│ └── setup.rb
├── spec
│ ├── spec_helper.rb
│ └── unit
│ └── recipes
│ └── default_spec.rb
└── test
└── smoke
└── default
└── default_test.rb
运行chef-client命令如下所示告诉我Cookbook总是丢失。是否需要设置配置参数以便找到食谱?
chef-client -z -r "recipe[BasicLinux::setup]"
[2017-12-21T15:18:20-05:00] WARN: No config file found or specified on command line, using command line options.
[2017-12-21T15:18:20-05:00] WARN: No cookbooks directory found at or above current directory. Assuming /opt/dk-chef/python_code/Chef.
[2017-12-21T15:18:20-05:00] WARN: No cookbooks directory found at or above current directory. Assuming /opt/dk-chef/python_code/Chef.
Starting Chef Client, version 13.6.4
resolving cookbooks for run list: ["BasicLinux::setup"]
================================================================================
Error Resolving Cookbooks for Run List:
================================================================================
Missing Cookbooks:
------------------
No such cookbook: BasicLinux
Expanded Run List:
------------------
* BasicLinux::setup
System Info:
------------
chef_version=13.6.4
platform=redhat
platform_version=6.6
ruby=ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux]
program_name=chef-client worker: ppid=23170;start=15:18:20;
executable=/opt/chefdk/bin/chef-client
Running handlers:
[2017-12-21T15:18:23-05:00] ERROR: Running exception handlers
[2017-12-21T15:18:23-05:00] ERROR: Running exception handlers
Running handlers complete
[2017-12-21T15:18:23-05:00] ERROR: Exception handlers complete
[2017-12-21T15:18:23-05:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 03 seconds
[2017-12-21T15:18:23-05:00] FATAL: Stacktrace dumped to /root/.chef/local-mode-cache/cache/chef-stacktrace.out
[2017-12-21T15:18:23-05:00] FATAL: Stacktrace dumped to /root/.chef/local-mode-cache/cache/chef-stacktrace.out
[2017-12-21T15:18:23-05:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2017-12-21T15:18:23-05:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2017-12-21T15:18:23-05:00] ERROR: 412 "Precondition Failed"
[2017-12-21T15:18:23-05:00] ERROR: 412 "Precondition Failed"
[2017-12-21T15:18:23-05:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
[2017-12-21T15:18:23-05:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
答案 0 :(得分:0)
需要cookbooks/BasicLinux/
,name 'BasicLinux'
中还需要metadata.rb
。鉴于recipes/nodes/
文件夹也确保您位于正确的文件夹中,您需要位于/opt/dk-chef/python_code/Chef
,而不是/opt/dk-chef/python_code/Chef/cookbooks/BasicLinux/recipes/
或其他任何内容(您可以删除里面的nodes/
文件夹食谱)。
答案 1 :(得分:0)
1。创建名称为“ cookbooks ”的目录,然后将菜谱放入(或创建)该目录中 2.从cookbooks目录外部,启动您或以下命令。 sudo Chef-client -z --runlist“ your_cookbook_name :: your_recipe_name”