Search code examples
rubyvagrantchef-infrachef-recipecookbook

Error Resolving Cookbooks for runlist: missing cookbooks: No such Cookbooks


I am learning Chef for the first time. At this point I was trying to run cookbooks instead of single recipe through chef-client. But I am receiving error message saying "missing cookbooks". I have tried to debug multiple times, as you can see using tree command, it is clear that there is cookbook named apache.

I tried to run the other cookbook workstation as well, but that gave the same error

Please help. And let me know where I am going wrong.

[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
│   │   └── test
│   │       └── recipes
│   │           └── default_test.rb
│   └── workstation
│       ├── Berksfile
│       ├── chefignore
│       ├── metadata.rb
│       ├── README.md
│       ├── recipes
│       │   ├── default.rb
│       │   └── setup.rb
│       ├── spec
│       │   ├── spec_helper.rb
│       │   └── unit
│       │       └── recipes
│       │           └── default_spec.rb
│       └── test
│           └── recipes
│               └── default_test.rb
├── generate
├── hello.rb
├── help
│   ├── Berksfile
│   ├── chefignore
│   ├── metadata.rb
│   ├── README.md
│   ├── recipes
│   │   └── default.rb
│   ├── spec
│   │   ├── spec_helper.rb
│   │   └── unit
│   │       └── recipes
│   │           └── default_spec.rb
│   └── test
│       └── recipes
│           └── default_test.rb
└── nodes
    └── localhost.json

24 directories, 28 files
[vagrant@localhost ~]$ sudo chef-client -z --runlist “apache::server”
[2017-08-08T13:16:05+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: ["“apache::server”"]

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

Missing Cookbooks:
------------------
No such cookbook: “apache

Expanded Run List:
------------------
* “apache::server”

Platform:
---------
x86_64-linux


Running handlers:
[2017-08-08T13:16:07+00:00] ERROR: Running exception handlers
Running handlers complete
[2017-08-08T13:16:07+00:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 01 seconds
[2017-08-08T13:16:07+00:00] FATAL: Stacktrace dumped to /root/.chef/local-mode-cache/cache/chef-stacktrace.out
[2017-08-08T13:16:07+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2017-08-08T13:16:07+00:00] ERROR: 412 "Precondition Failed"
[2017-08-08T13:16:07+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
[vagrant@localhost ~]$

Solution

  • It seems that you have copied that line including typographic (?) quotes. Have a look at the output:

    resolving cookbooks for run list: ["“apache::server”"]

    So fix those quotes in your shell command:

    $ sudo chef-client -z --runlist "apache::server"