Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chef-run fails to pull cookbooks from chef server #78

Open
nhuff opened this issue May 14, 2019 · 5 comments
Open

chef-run fails to pull cookbooks from chef server #78

nhuff opened this issue May 14, 2019 · 5 comments
Labels
Triage: Confirmed Indicates and issue has been confirmed as described.

Comments

@nhuff
Copy link

nhuff commented May 14, 2019

Description

Trying to run chef-run with a cookbook that uses other cookbooks that need to be pulled from a chef server fails.

Chef Apply Version

chef -v
Chef Workstation: 0.2.53
  chef-run: 0.2.8
  chef-client: 14.10.9
  delivery-cli: 0.0.52 (9d07501a3b347cc687c902319d23dc32dd5fa621)
  berks: 7.0.7
  test-kitchen: 1.24.0
  inspec: 3.6.6

Platform Version

cat /etc/redhat-release
Fedora release 29 (Twenty Nine)

Replication Case

Create a cookbook that uses a Policyfile

chef generate cookbook -P example_cookbook

Edit Policyfile.rb to be the following

name 'example_cookbook'
default_source :chef_server, "https://chef-server.organization.com/organizations/example_org"
default_source :chef_repo, "../"
run_list 'example_cookbook::default'
cookbook 'example_cookbook'
cookbook 'other_cookbook'

Edit metadata.rb to add the dependancy

name 'example_cookbook'
maintainer 'The Authors'
maintainer_email '[email protected]'
license 'All Rights Reserved'
description 'Installs/Configures example_cookbook'
long_description 'Installs/Configures example_cookbook'
version '0.1.0'
chef_version '>= 13.0'

depends 'other_cookbook'

Add the default recipe recipes/default.rb

other_cookbook_resource 'example'

Try to apply that cookbook with chef-run

chef-run test_host --password "${pass}" --sudo-password "${pass}" example_cookbook

Client Output

[✔] Packaging cookbook... done!
[✖] Could not create local Policyfile bundle.

CHEFPOLICY001

Could not create local Policyfile bundle.

The following error was reported:

Failed to generate Policyfile.lock

Stacktrace

Backtrace:
ChefApply::Action::PolicyfileInstallError: ChefApply::Action::PolicyfileInstallError
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/action/generate_local_policy.rb:37:in `rescue in perform_action'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/action/generate_local_policy.rb:29:in `perform_action'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/action/base.rb:116:in `block in run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/telemeter.rb:85:in `block in timed_capture'
	/opt/chef-workstation/embedded/lib/ruby/2.5.0/benchmark.rb:293:in `measure'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/telemeter.rb:85:in `timed_capture'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/telemeter.rb:70:in `timed_action_capture'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/action/base.rb:114:in `run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/cli.rb:231:in `generate_local_policy'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/cli.rb:142:in `block in render_cookbook_setup'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/ui/terminal/job.rb:31:in `run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/ui/terminal.rb:76:in `render_job'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/cli.rb:144:in `render_cookbook_setup'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/cli.rb:111:in `perform_run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/cli.rb:72:in `block in run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/telemeter.rb:85:in `block in timed_capture'
	/opt/chef-workstation/embedded/lib/ruby/2.5.0/benchmark.rb:293:in `measure'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/telemeter.rb:85:in `timed_capture'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/telemeter.rb:74:in `timed_run_capture'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/cli.rb:70:in `run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/startup.rb:189:in `start_chef_apply'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/startup.rb:65:in `run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/bin/chef-run:23:in `<top (required)>'
	/usr/bin/chef-run:306:in `load'
	/usr/bin/chef-run:306:in `<main>'
Caused by: ChefDK::PolicyfileInstallError: Failed to install cookbooks from lockfile
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-dk-3.8.14/lib/chef-dk/policyfile_services/install.rb:158:in `rescue in install_from_lock'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-dk-3.8.14/lib/chef-dk/policyfile_services/install.rb:153:in `install_from_lock'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-dk-3.8.14/lib/chef-dk/policyfile_services/install.rb:61:in `run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-apply-0.2.8/lib/chef_apply/action/generate_local_policy.rb:31:in `perform_action'
	... 23 more
Caused by: CookbookOmnifetch::MissingConfiguration: `default_chef_server_http_client` is not configured
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/cookbook-omnifetch-0.8.0/lib/cookbook-omnifetch/integration.rb:24:in `block in configurable'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/cookbook-omnifetch-0.8.0/lib/cookbook-omnifetch.rb:128:in `default_chef_server_http_client'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/cookbook-omnifetch-0.8.0/lib/cookbook-omnifetch/chef_server.rb:68:in `default_chef_server_http_client'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/cookbook-omnifetch-0.8.0/lib/cookbook-omnifetch/chef_server.rb:13:in `initialize'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/cookbook-omnifetch-0.8.0/lib/cookbook-omnifetch.rb:34:in `new'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/cookbook-omnifetch-0.8.0/lib/cookbook-omnifetch.rb:34:in `init'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-dk-3.8.14/lib/chef-dk/policyfile/cookbook_location_specification.rb:99:in `installer'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-dk-3.8.14/lib/chef-dk/policyfile/cookbook_location_specification.rb:76:in `installed?'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-dk-3.8.14/lib/chef-dk/policyfile/cookbook_locks.rb:75:in `installed?'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-dk-3.8.14/lib/chef-dk/policyfile_lock.rb:49:in `installing_cookbook'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-dk-3.8.14/lib/chef-dk/policyfile_lock.rb:296:in `block in install_cookbooks'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-dk-3.8.14/lib/chef-dk/policyfile_lock.rb:295:in `each'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-dk-3.8.14/lib/chef-dk/policyfile_lock.rb:295:in `install_cookbooks'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.5.0/gems/chef-dk-3.8.14/lib/chef-dk/policyfile_services/install.rb:156:in `install_from_lock'
	... 25 more

Workaround

The issue seems to be that chef-apply never configures the cookbook-omnifetch http client. I was able to hack in setting CookbookOmnifetch.integration.default_chef_server_http_client before chef-apply tries to generate the Policyfile lock and that seems to work.

@tyler-ball tyler-ball added Aspect: Correctness Triage: Needs Information Indicates an issue needs more information in order to work on it. labels Sep 9, 2019
@tyler-ball
Copy link
Contributor

Hey @nhuff - I thought we fixed this but cannot find any git history to agree with me. Would you mind checking the latest version of Chef Workstation (0.8.7) and see if your issue is resolved?

@nhuff
Copy link
Author

nhuff commented Sep 10, 2019

Got a different error. It looks like the Chef Config never gets initialized.

Backtrace:
ChefApply::Action::PolicyfileInstallError: ChefApply::Action::PolicyfileInstallError
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/action/generate_local_policy.rb:36:in `rescue in perform_action'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/action/generate_local_policy.rb:28:in `perform_action'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/action/base.rb:45:in `block in run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/telemeter.rb:85:in `block in timed_capture'
	/opt/chef-workstation/embedded/lib/ruby/2.6.0/benchmark.rb:293:in `measure'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/telemeter.rb:85:in `timed_capture'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/telemeter.rb:70:in `timed_action_capture'
	/opt/chef-workstation/embedded/lib/ruby/2.6.0/forwardable.rb:230:in `timed_action_capture'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/action/base.rb:43:in `run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/cli.rb:245:in `generate_local_policy'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/cli.rb:156:in `block in render_cookbook_setup'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/ui/terminal/job.rb:31:in `run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/ui/terminal.rb:76:in `render_job'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/cli.rb:158:in `render_cookbook_setup'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/cli.rb:115:in `perform_run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/cli.rb:75:in `block in run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/telemeter.rb:85:in `block in timed_capture'
	/opt/chef-workstation/embedded/lib/ruby/2.6.0/benchmark.rb:293:in `measure'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/telemeter.rb:85:in `timed_capture'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/telemeter.rb:74:in `timed_run_capture'
	/opt/chef-workstation/embedded/lib/ruby/2.6.0/forwardable.rb:230:in `timed_run_capture'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/cli.rb:73:in `run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/startup.rb:189:in `start_chef_apply'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/startup.rb:65:in `run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/bin/chef-run:23:in `<top (required)>'
	/usr/bin/chef-run:338:in `load'
	/usr/bin/chef-run:338:in `<main>'
Caused by: ChefCLI::PolicyfileInstallError: Failed to generate Policyfile.lock
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile_services/install.rb:115:in `rescue in generate_lock_and_install'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile_services/install.rb:94:in `generate_lock_and_install'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile_services/install.rb:63:in `run'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.3.3/lib/chef_apply/action/generate_local_policy.rb:30:in `perform_action'
	... 25 more
Caused by: NoMethodError: undefined method `client_key' for nil:NilClass
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile/chef_server_cookbook_source.rb:88:in `http_connection_for'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile/chef_server_cookbook_source.rb:96:in `full_chef_server_graph'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile/chef_server_cookbook_source.rb:57:in `universe_graph'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile_compiler.rb:294:in `block in remote_artifacts_graph'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile_compiler.rb:293:in `each'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile_compiler.rb:293:in `remote_artifacts_graph'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile_compiler.rb:269:in `artifacts_graph'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile_compiler.rb:237:in `block in graph'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile_compiler.rb:236:in `tap'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile_compiler.rb:236:in `graph'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile_compiler.rb:232:in `graph_solution'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile_compiler.rb:178:in `install'
	/opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-1.0.11/lib/chef-cli/policyfile_services/install.rb:102:in `generate_lock_and_install'
	... 27 more

@tyler-ball tyler-ball added Triage: Confirmed Indicates and issue has been confirmed as described. and removed Triage: Needs Information Indicates an issue needs more information in order to work on it. labels Sep 24, 2019
@tyler-ball
Copy link
Contributor

Thanks for checking that @nhuff - we'll look into that new error that occurs in the latest version.

@yangpeng-chn
Copy link

yangpeng-chn commented Jan 16, 2020

Got an error below with chef-run when pulling cookbook from artifactory.

Caused by: NoMethodError: undefined method 'artifactory_api_key' for nil:NilClass

Policyfile

...
default_source :artifactory, 'https://hostname/artifactory/api/chef/chef'
...

config.rb
artifactory_api_key "******"

command
chef-run xx.xx.xx.xx --user root --password xxx test::uninstall_chef_server

Log

2020-01-16 13:33:50 +0900: Error encountered while running the following:
  xx.xx.xx.xx --user root --password test test::uninstall_chef_server
Backtrace:
ChefApply::Action::PolicyfileInstallError: ChefApply::Action::PolicyfileInstallError
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/action/generate_local_policy.rb:36:in `rescue in
perform_action'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/action/generate_local_policy.rb:28:in `perform_ac
tion'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/action/base.rb:45:in `block in run'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/telemeter.rb:85:in `block in timed_capture'
        /opt/chef-workstation/embedded/lib/ruby/2.6.0/benchmark.rb:293:in `measure'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/telemeter.rb:85:in `timed_capture'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/telemeter.rb:70:in `timed_action_capture'
        /opt/chef-workstation/embedded/lib/ruby/2.6.0/forwardable.rb:230:in `timed_action_capture'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/action/base.rb:43:in `run'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/cli.rb:245:in `generate_local_policy'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/cli.rb:155:in `block in render_cookbook_setup'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/ui/terminal/job.rb:31:in `run'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/ui/terminal.rb:76:in `render_job'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/cli.rb:157:in `render_cookbook_setup'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/cli.rb:115:in `perform_run'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/cli.rb:75:in `block in run'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/telemeter.rb:85:in `block in timed_capture'
        /opt/chef-workstation/embedded/lib/ruby/2.6.0/benchmark.rb:293:in `measure'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/telemeter.rb:85:in `timed_capture'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/telemeter.rb:74:in `timed_run_capture'
        /opt/chef-workstation/embedded/lib/ruby/2.6.0/forwardable.rb:230:in `timed_run_capture'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/cli.rb:73:in `run'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/startup.rb:192:in `start_chef_apply'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/startup.rb:65:in `run'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/bin/chef-run:23:in `<top (required)>'
        /opt/chef-workstation/bin/chef-run:354:in `load'
        /opt/chef-workstation/bin/chef-run:354:in `<main>'
Caused by: ChefCLI::PolicyfileInstallError: Failed to generate Policyfile.lock
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile_services/install.rb:115:in `rescue in gene
rate_lock_and_install'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile_services/install.rb:94:in `generate_lock_a
nd_install'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile_services/install.rb:63:in `run'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-apply-0.4.6/lib/chef_apply/action/generate_local_policy.rb:30:in `perform_ac
tion'
        ... 25 more
Caused by: NoMethodError: undefined method `artifactory_api_key' for nil:NilClass
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile/artifactory_cookbook_source.rb:88:in `http
_connection_for'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile/artifactory_cookbook_source.rb:95:in `full
_community_graph'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile/artifactory_cookbook_source.rb:58:in `univ
erse_graph'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile_compiler.rb:294:in `block in remote_artifa
cts_graph'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile_compiler.rb:293:in `each'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile_compiler.rb:293:in `remote_artifacts_graph'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile_compiler.rb:269:in `artifacts_graph'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile_compiler.rb:237:in `block in graph'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile_compiler.rb:236:in `tap'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile_compiler.rb:236:in `graph'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile_compiler.rb:232:in `graph_solution'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile_compiler.rb:178:in `install'
        /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-cli-2.0.0/lib/chef-cli/policyfile_services/install.rb:102:in `generate_lock_and_install'
        ... 27 more

Version

$ chef -v
Chef Workstation version: 0.11.21
Chef Infra Client version: 15.4.45
Chef InSpec version: 4.18.0
Chef CLI version: 2.0.0
Test Kitchen version: 2.3.4
Cookstyle version: 5.10.13

@ElfoLiNk
Copy link

ElfoLiNk commented Oct 20, 2020

I'm getting the same as @yangpeng-chn

$ cat ~/.chef/config.rb 
artifactory_api_key = 'XXX'
$ chef exec rspec

An error occurred in a `before(:suite)` hook.
Failure/Error: raise PolicyfileInstallError.new("Failed to generate Policyfile.lock", error)

ChefCLI::PolicyfileInstallError:
  Failed to generate Policyfile.lock
# /opt/chef-workstation/embedded/lib/ruby/gems/2.7.0/gems/chef-cli-3.0.32/lib/chef-cli/policyfile_services/install.rb:117:in `rescue in generate_lock_and_install'
# /opt/chef-workstation/embedded/lib/ruby/gems/2.7.0/gems/chef-cli-3.0.32/lib/chef-cli/policyfile_services/install.rb:96:in `generate_lock_and_install'
# /opt/chef-workstation/embedded/lib/ruby/gems/2.7.0/gems/chef-cli-3.0.32/lib/chef-cli/policyfile_services/install.rb:65:in `run'
# /opt/chef-workstation/embedded/lib/ruby/gems/2.7.0/gems/chefspec-9.2.1/lib/chefspec/policyfile.rb:35:in `setup!'
# /opt/chef-workstation/embedded/lib/ruby/2.7.0/forwardable.rb:235:in `setup!'
# /opt/chef-workstation/embedded/lib/ruby/gems/2.7.0/gems/chefspec-9.2.1/lib/chefspec/policyfile.rb:63:in `block (2 levels) in <top (required)>'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/gems/rspec-core-3.9.3/lib/rspec/core/example.rb:455:in `instance_exec'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/gems/rspec-core-3.9.3/lib/rspec/core/example.rb:455:in `instance_exec'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/gems/rspec-core-3.9.3/lib/rspec/core/hooks.rb:365:in `run'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/gems/rspec-core-3.9.3/lib/rspec/core/configuration.rb:2138:in `block in run_suite_hooks'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/gems/rspec-core-3.9.3/lib/rspec/core/configuration.rb:2136:in `each'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/gems/rspec-core-3.9.3/lib/rspec/core/configuration.rb:2136:in `run_suite_hooks'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/gems/rspec-core-3.9.3/lib/rspec/core/configuration.rb:2060:in `with_suite_hooks'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/gems/rspec-core-3.9.3/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/gems/rspec-core-3.9.3/lib/rspec/core/reporter.rb:74:in `report'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/gems/rspec-core-3.9.3/lib/rspec/core/runner.rb:115:in `run_specs'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/gems/rspec-core-3.9.3/lib/rspec/core/runner.rb:89:in `run'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/gems/rspec-core-3.9.3/lib/rspec/core/runner.rb:71:in `run'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/gems/rspec-core-3.9.3/lib/rspec/core/runner.rb:45:in `invoke'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/gems/rspec-core-3.9.3/exe/rspec:4:in `<top (required)>'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/bin/rspec:23:in `load'
# /Users/mgazzetta/.chefdk/gem/ruby/2.7.0/bin/rspec:23:in `<main>'
# 
#   Showing full backtrace because every line was filtered out.
#   See docs for RSpec::Configuration#backtrace_exclusion_patterns and
#   RSpec::Configuration#backtrace_inclusion_patterns for more information.
# ------------------
# --- Caused by: ---
# NoMethodError:
#   undefined method `artifactory_api_key' for nil:NilClass
#   /opt/chef-workstation/embedded/lib/ruby/gems/2.7.0/gems/chef-cli-3.0.32/lib/chef-cli/policyfile/artifactory_cookbook_source.rb:88:in `http_connection_for'

Finished in 0.24441 seconds (files took 3.83 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples

Chef Version

$ chef -v 
Chef Workstation version: 20.9.158
Chef Infra Client version: 16.5.77
Chef InSpec version: 4.23.11
Chef CLI version: 3.0.32
Chef Habitat version: 1.6.56
Test Kitchen version: 2.7.2
Cookstyle version: 6.19.5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Triage: Confirmed Indicates and issue has been confirmed as described.
Projects
None yet
Development

No branches or pull requests

4 participants