chef-cookbooks / supermarket-omnibus-cookbook Goto Github PK
View Code? Open in Web Editor NEWA cookbook for installing supermarket from Omnibus (deb, rpm) packages
License: Apache License 2.0
A cookbook for installing supermarket from Omnibus (deb, rpm) packages
License: Apache License 2.0
Remove deprecated chef-server-ingredient and install via chef-ingredient.
There's an older version (older code) of this cookbook uploaded to https://supermarket.chef.io/cookbooks/supermarket-omnibus-cookbook having the same version "1.1.0".
This is so confusing when you're assuming they're the same and trying to debug. Killed a couple hours before realizing I'm looking into code from github and using the one from supermarket which is different though has the same version tag.
Please save time to others and remove the current version from supermarket and upload the one from github.
Note: I understand that supermarket is still alpha
Bug: With github / source control underpinning and chef-server history retention, checking in a wrapper cookbook with secrets as node attributes is not the best practice.
Solution:
Add chef-vault or encrypted db support as an option
I keep seeing this in my Supermarket nodes' Chef runs, which seems to happen during the post-run phase:
NoMethodError: undefined method `installed' for Chef::Resource::ChefServerIngredient
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/resource.rb:300:in `method_missing'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/resource_reporter.rb:95:in `block in state'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/resource_reporter.rb:94:in `each'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/resource_reporter.rb:94:in `inject'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/resource_reporter.rb:94:in `state'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/resource_reporter.rb:65:in `for_json'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/resource_reporter.rb:273:in `block in prepare_run_data'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/resource_reporter.rb:272:in `map'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/resource_reporter.rb:272:in `prepare_run_data'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/resource_reporter.rb:229:in `post_reporting_data'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/resource_reporter.rb:214:in `run_completed'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/event_dispatch/dispatcher.rb:29:in `block in run_completed'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/event_dispatch/dispatcher.rb:29:in `each'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/event_dispatch/dispatcher.rb:29:in `run_completed'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/client.rb:438:in `do_run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/client.rb:213:in `block in run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/client.rb:207:in `fork'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/client.rb:207:in `run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/application.rb:236:in `run_chef_client'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/application/client.rb:338:in `block in run_application'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/application/client.rb:327:in `loop'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/application/client.rb:327:in `run_application'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/lib/chef/application.rb:55:in `run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.16.4/bin/chef-client:26:in `<top (required)>'
/usr/bin/chef-client:23:in `load'
/usr/bin/chef-client:23:in `<main>'
It would seem that this is related to the HWRP provided by the stephenlauck/chef-server-ingredient cookbook and the :installed
state attribute it expects to provide.
Impact is that node run reports aren't sent properly to the Chef org, though node data is getting persisted properly and notifications seem to all be firing properly. Obviously, since I'm now happily running Supermarket. So it's not a big deal but, y'know. Tracebacks. Ick.
It looks like the world has moved on since requiring this fork of that cookbook ... might it be time to go back to the mainline version in the opscode repo?
Currently Supermarket upgrade process not delightful. These steps would make it more delightful.
See #32 for more details
If a machine is booted up and runs chef-client with this cookbook it will not converge, as shown below. If you log in and run it by hand, it will converge that time, and then fail to converge when it runs as a daemon again. It apparently needs a HOME environment variable.
[2016-07-01T17:35:30+00:00] INFO: Processing link[/opt/supermarket/embedded/service/supermarket/config/database.yml] action create (omnibus-supermarket::database line 70)
[2016-07-01T17:35:30+00:00] INFO: Processing file[/opt/supermarket/embedded/service/supermarket/db/schema.rb] action create (omnibus-supermarket::database line 76)
[2016-07-01T17:35:30+00:00] INFO: Processing execute[database schema] action run (omnibus-supermarket::database line 80)
ESC[0m
================================================================================ESC[0m
ESC[31mError executing action `run` on resource 'execute[database schema]'ESC[0m
================================================================================ESC[0m
ESC[0mMixlib::ShellOut::ShellCommandFailedESC[0m
------------------------------------ESC[0m
Expected process to exit with [0], but received '1'
ESC[0m---- Begin output of bundle exec rake db:migrate db:seed ----
ESC[0mSTDOUT:
ESC[0mSTDERR: /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rbreadline.rb:1097:in `<module:RbReadline>': HOME environment variable (or HOMEDRIVE and HOMEPATH) must be set and point to a directory (RuntimeError)
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rbreadline.rb:17:in `<top (required)>'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/readline.rb:10:in `<module:Readline>'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/readline.rb:8:in `<top (required)>'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb:2:in `<top (required)>'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/line_editor.rb:2:in `<top (required)>'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/base.rb:8:in `<top (required)>'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor.rb:2:in `<top (required)>'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/vendored_thor.rb:3:in `<top (required)>'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/friendly_errors.rb:4:in `<top (required)>'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
ESC[0m from /opt/supermarket/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/exe/bundle:18:in `<top (required)>'
ESC[0m from /opt/supermarket/embedded/bin/bundle:23:in `load'
ESC[0m from /opt/supermarket/embedded/bin/bundle:23:in `<main>'
ESC[0m---- End output of bundle exec rake db:migrate db:seed ----
ESC[0mRan bundle exec rake db:migrate db:seed returned 1ESC[0m
ESC[0mResource Declaration:ESC[0m
---------------------ESC[0m
# In /var/opt/supermarket/cache/cache/cookbooks/omnibus-supermarket/recipes/database.rb
ESC[0m
ESC[0m 80: execute 'database schema' do
ESC[0m 81: command 'bundle exec rake db:migrate db:seed'
ESC[0m 82: cwd node['supermarket']['app_directory']
ESC[0m 83: env 'RAILS_ENV' => 'production'
ESC[0m 84: user node['supermarket']['user']
ESC[0m 85: end
ESC[0m
ESC[0mCompiled Resource:ESC[0m
------------------ESC[0m
# Declared in /var/opt/supermarket/cache/cache/cookbooks/omnibus-supermarket/recipes/database.rb:80:in `from_file'
ESC[0m
ESC[0mexecute("database schema") do
ESC[0m action "run"
ESC[0m retries 0
ESC[0m retry_delay 2
ESC[0m default_guard_interpreter :execute
ESC[0m command "bundle exec rake db:migrate db:seed"
ESC[0m backup 5
ESC[0m cwd "/opt/supermarket/embedded/service/supermarket"
ESC[0m environment {"RAILS_ENV"=>"production"}
ESC[0m returns 0
ESC[0m user "supermarket"
ESC[0m declared_type :execute
ESC[0m cookbook_name "omnibus-supermarket"
ESC[0m recipe_name "database"
ESC[0mend
ESC[0m
ESC[0m[2016-07-01T17:35:30+00:00] INFO: Running queued delayed notifications before re-raising exception
Setting default['supermarket_package']['package_source']
doesn't work. The expected result is that the package would be downloaded and installed from the provided URL. The actual result is that nothing is installed and...
===============================================================================
Error executing action `run` on resource 'execute[supermarket-reconfigure]'
================================================================================
Errno::ENOENT
-------------
No such file or directory - /opt/supermarket/bin/supermarket-ctl
Resource Declaration:
---------------------
# In /tmp/kitchen/cache/cookbooks/chef-server-ingredient/libraries/chef_server_ingredients_provider.rb
76: execute "#{new_resource.package_name}-reconfigure" do
77: command "#{ctl_command} reconfigure"
78: end
79: end
Related? chef/chef#3487
UPDATE: After reading the above issue, I wrote a quick-and-dirty recipe to simply call rpm_package
with source
pointing to a local, downloaded supermarket-1.11.0-alpha.0-1.rpm. It also failed to install!
I upgraded from chef-client 12.2.1 to 12.4.0 and tried it again and it worked.
Hey Irving, is there any chance that you can release this to the supermarket? For now I need to point my Berksfile to your github repo, which is fine for now.
Is this this going to be the de-facto method for installing supermarket or will there be another cookbook when supermarket is out of beta?
Add ability to pin a specific Supermarket version
3.0.0
Chef: 12.21.3
Amazon Linux AMI release 2017.03
Private supermarket installation fails on Amazon Linux 2017.03.
This seems to be caused by an known issue with sysctl cookbook: Sous-Chefs-Boneyard/sysctl#85
supermarket-ctl reconfigure always seems to run with latest chef-client
---- Begin output of /opt/supermarket/bin/supermarket-ctl reconfigure ----
STDOUT: Starting Chef Client, version 13.2.20
Is it possible to override the version of chef-client to use as a workaround?
Including supermarket-omnibus-cookbook
cookbook.
[What are you expecting to happen as the consequence of above reproduction steps?]
---- Begin output of /opt/supermarket/bin/supermarket-ctl reconfigure ----
STDOUT: Starting Chef Client, version 13.2.20
resolving cookbooks for run list: ["omnibus-supermarket::default"]
Synchronizing Cookbooks:
- omnibus-supermarket (1.1.0)
- runit (3.0.5)
- enterprise (0.11.0)
- omnibus (5.2.1)
- sysctl (0.9.0)
- unicorn (2.1.2)
- openssl (7.1.0)
- build-essential (8.0.3)
- chef-sugar (3.4.0)
- chef-ingredient (2.1.3)
- git (6.1.0)
- homebrew (4.2.0)
- remote_install (1.0.2)
- seven_zip (2.0.2)
- windows (3.1.1)
- wix (3.2.0)
- windows-sdk (1.0.2)
- packagecloud (0.3.0)
- yum-epel (2.1.2)
- ohai (5.1.0)
- mingw (2.0.1)
- dmg (4.0.0)
- compat_resource (12.19.0)
Installing Cookbook Gems:
Compiling Cookbooks...
Converging 78 resources
Recipe: omnibus-supermarket::config
* linux_user[supermarket] action create (up to date)
* group[supermarket] action create (up to date)
* directory[/etc/supermarket] action create (up to date)
* directory[/var/opt/supermarket] action create (up to date)
* directory[/var/log/supermarket] action create (up to date)
* directory[/var/opt/supermarket/etc] action create (up to date)
* file[/etc/supermarket/supermarket.rb] action create (up to date)
* file[/etc/supermarket/secrets.json] action create (up to date)
Recipe: omnibus-supermarket::log_management
* directory[/var/opt/supermarket/etc/logrotate.d] action create (up to date)
* template[/var/opt/supermarket/etc/logrotate.conf] action create (up to date)
* template[/etc/cron.hourly/supermarket_logrotate] action create (up to date)
Recipe: omnibus-supermarket::ssl
* directory[/var/opt/supermarket/ssl] action create (up to date)
* directory[/var/opt/supermarket/ssl/ca] action create (up to date)
* openssl_dhparam[/var/opt/supermarket/ssl/ca/dhparams.pem] action create (up to date)
* openssl_x509[/var/opt/supermarket/ssl/ca/supermarket.test.nimbus.expedia.com.crt] action create (up to date)
* link[/var/opt/supermarket/ssl/cacert.pem] action create (up to date)
Recipe: sysctl::service
* template[/etc/rc.d/init.d/procps] action create (skipped due to only_if)
* service[procps] action enable
* service[procps]: Service is not known to chkconfig.
================================================================================
Error executing action `enable` on resource 'service[procps]'
================================================================================
Chef::Exceptions::Service
-------------------------
service[procps]: Service is not known to chkconfig.
Resource Declaration:
---------------------
# In /var/opt/supermarket/cache/cache/cookbooks/sysctl/recipes/service.rb
26: service 'procps' do
27: supports :restart => true, :reload => true, :status => false
28: action :enable
29: end
Does this cookbook support Chef Server 11.2.x, or just 12.0.x?
Do these values work for Chef Sever 11.2.x?
default['supermarket_omnibus']['chef_oauth2_app_id'] = '14dfcf186221781cff51eedd5ac1616'
default['supermarket_omnibus']['chef_oauth2_secret'] = 'a49402219627cfa6318d58b13e90aca'
default['supermarket_omnibus']['chef_oauth2_verify_ssl'] = false
Error executing action run
on resource 'execute[create postgresql plpgsql extension
With the following config in my wrapper cookbook:
default['supermarket_omnibus']['chef_server_url'] = 'xxx'
default['supermarket_omnibus']['chef_oauth2_app_id'] = 'xxx'
default['supermarket_omnibus']['chef_oauth2_secret'] = 'xxx'
default['supermarket_omnibus']['chef_oauth2_verify_ssl'] = false
default['supermarket_omnibus']['package_url'] = 'xxx'
default['supermarket_omnibus']['config']['features'] = 'tools, gravatar, collaborator_groups, github, announcement'
default['supermarket_omnibus']['config']['postgresql']['enable'] = false
default['supermarket_omnibus']['config']['database']['user'] = 'chef'
default['supermarket_omnibus']['config']['database']['name'] = 'supermarket'
default['supermarket_omnibus']['config']['database']['host'] = 'xxx.us-east-1.rds.amazonaws.com'
default['supermarket_omnibus']['config']['database']['port'] = '5432'
default['supermarket_omnibus']['config']['database']['password'] = ''
default['supermarket_omnibus']['config']['s3_bucket'] = ''
Looks like this was fixed previously here: https://github.com/chef-boneyard/omnibus-supermarket/pull/20/commits/108f144d6262d57d79903ba518d0b4f4b40f6d38v
[0mMixlib::ShellOut::ShellCommandFailed�[0m
------------------------------------�[0m
Expected process to exit with [0], but received '1'
�[0m---- Begin output of echo 'CREATE EXTENSION IF NOT EXISTS plpgsql' | psql ----
�[0mSTDOUT:
�[0mSTDERR: /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/mixlib-shellout-2.2.7/lib/mixlib/shellout.rb:206:in `getpwnam': can't find user for chef (ArgumentError)
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/mixlib-shellout-2.2.7/lib/mixlib/shellout.rb:206:in `uid'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/mixlib-shellout-2.2.7/lib/mixlib/shellout/unix.rb:153:in `set_user'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/mixlib-shellout-2.2.7/lib/mixlib/shellout/unix.rb:332:in `block in fork_subprocess'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/mixlib-shellout-2.2.7/lib/mixlib/shellout/unix.rb:316:in `fork'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/mixlib-shellout-2.2.7/lib/mixlib/shellout/unix.rb:316:in `fork_subprocess'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/mixlib-shellout-2.2.7/lib/mixlib/shellout/unix.rb:93:in `run_command'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/mixlib-shellout-2.2.7/lib/mixlib/shellout.rb:259:in `run_command'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/mixin/shell_out.rb:86:in `shell_out_command'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/mixin/shell_out.rb:39:in `shell_out'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/mixin/shell_out.rb:44:in `shell_out!'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/provider/execute.rb:62:in `block in action_run'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/mixin/why_run.rb:52:in `add_action'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/provider.rb:176:in `converge_by'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/provider/execute.rb:60:in `action_run'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/provider.rb:145:in `run_action'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/resource.rb:603:in `run_action'
�[0m from /var/opt/supermarket/cache/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/runner.rb:78:in `run_action'
�[0m from /var/opt/supermarket/cache/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/runner.rb:106:in `block (2 levels) in converge'
�[0m from /var/opt/supermarket/cache/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/runner.rb:106:in `each'
�[0m from /var/opt/supermarket/cache/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/runner.rb:106:in `block in converge'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
�[0m from /opt/supermarket/embedded/lib/ruby/2.3.0/forwardable.rb:184:in `execute_each_resource'
�[0m from /var/opt/supermarket/cache/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/runner.rb:105:in `converge'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/client.rb:669:in `block in converge'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/client.rb:664:in `catch'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/client.rb:664:in `converge'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/client.rb:703:in `converge_and_save'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/client.rb:283:in `run'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/application.rb:302:in `block in fork_chef_client'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/application.rb:290:in `fork'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/application.rb:290:in `fork_chef_client'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/application.rb:255:in `block in run_chef_client'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/local_mode.rb:44:in `with_server_connectivity'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/application.rb:243:in `run_chef_client'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/application/client.rb:464:in `sleep_then_run_chef_client'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/application/client.rb:451:in `block in interval_run_chef_client'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/application/client.rb:450:in `loop'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/application/client.rb:450:in `interval_run_chef_client'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/application/client.rb:434:in `run_application'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/lib/chef/application.rb:60:in `run'
�[0m from /opt/supermarket/embedded/lib/ruby/gems/2.3.0/gems/chef-12.13.37/bin/chef-client:26:in `<top (required)>'
�[0m from /opt/supermarket/embedded/bin/chef-client:23:in `load'
�[0m from /opt/supermarket/embedded/bin/chef-client:23:in `<main>'
�[0m---- End output of echo 'CREATE EXTENSION IF NOT EXISTS plpgsql' | psql ----
�[0mRan echo 'CREATE EXTENSION IF NOT EXISTS plpgsql' | psql returned 1�[0m
�[0mCookbook Trace:�[0m
---------------�[0m
/var/opt/supermarket/cache/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/runner.rb:78:in `run_action'
�[0m/var/opt/supermarket/cache/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/runner.rb:106:in `block (2 levels) in converge'
�[0m/var/opt/supermarket/cache/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/runner.rb:106:in `each'
�[0m/var/opt/supermarket/cache/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/runner.rb:106:in `block in converge'
�[0m/var/opt/supermarket/cache/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/runner.rb:105:in `converge'�[0m
�[0mResource Declaration:�[0m
---------------------�[0m
# In /var/opt/supermarket/cache/cache/cookbooks/omnibus-supermarket/recipes/database.rb
�[0m
�[0m 46: execute "create postgresql #{ext} extension" do
�[0m 47: user node['supermarket']['database']['user']
�[0m 48: command "echo 'CREATE EXTENSION IF NOT EXISTS #{ext}' | psql"
�[0m 49: not_if "echo '\\dx' | psql #{node['supermarket']['database']['name']} | grep #{ext}"
�[0m 50: end
�[0m 51: end
�[0m
�[0mCompiled Resource:�[0m
------------------�[0m
# Declared in /var/opt/supermarket/cache/cache/cookbooks/omnibus-supermarket/recipes/database.rb:46:in `block in from_file'
�[0m
�[0mexecute("create postgresql plpgsql extension") do
�[0m action [:run]
�[0m retries 0
�[0m retry_delay 2
�[0m default_guard_interpreter :execute
�[0m command "echo 'CREATE EXTENSION IF NOT EXISTS plpgsql' | psql"
�[0m backup 5
�[0m returns 0
�[0m user "chef"
�[0m declared_type :execute
�[0m cookbook_name "omnibus-supermarket"
�[0m recipe_name "database"
�[0m not_if "echo '\dx' | psql supermarket | grep plpgsql"
�[0mend
�[0m
�[0mPlatform:�[0m
---------�[0m
x86_64-linux�[0m
3.0.0
12.19.36
CentOS 7.x
Idempotent chef-client runs
run cookbook
If no upgrade or configuration change, Zero
resources executed.
every chef client run, supermarket is reconfigured.
Seems to be related array of actions in https://github.com/chef-cookbooks/supermarket-omnibus-cookbook/blob/master/resources/supermarket_server.rb#L62
In leu of chef-server-ingredient being deprecated we should convert to chef-ingredient
3.0.0
13.8.5
AWS, CentOS 7
Credential-containing config file is world-readable (644
). This is a security risk because it gives access to the credentials of various services to any valid system user.
/etc/supermarket/supermarket.json
supermarket.json
, containing credentials to AWS, Postgres, etc should not be world readable. The permissions should be 600
. The file should probably be owned by supermarket.
supermarket.json
is mode 644
. (-rw-r--r--
)
This file in particular is also owned by root, whereas the other files in the directory are owned by supermarket.
3.0.0
12.17.44
RHEL 7
When writing a recipe that includes both the sysctl
and supermarket-omnibus-cookbook
default recipes, the embedded chef-solo instance that Supermarket uses to configure itself contends with my recipe for control over the file /etc/sysctl.d/99-chef-attributes.rb
.
Supermarket has some configuration parameters that allow the admin to alter the path for the sysctl conf file that it writes (as well as other arbitrary attributes for the sysctl cookbook embedded in Supermarket); however, these parameters are not configurable by supermarket-omnibus-cookbook. This is a request to add attributes (or any other kind of interface) to supermarket-omnibus-cookbook to allow adjusting these sysctl configuration parameters.
For instance, a parameter that I would like to adjust is default['sysctl']['conf_file']
in /etc/supermarket/supermarket.rb
(I am not sure what this corresponds to in /etc/supermarket/supermarket.json
). I tried setting the node attribute in my recipe default['supermarket_omnibus']['config']['sysctl']['conf_file']
, which gets put in to /etc/supermarket/supermarket.json
as { "sysctl": { "conf_file": "..." } }
, but doesn't seem to have the desired effect.
Converge a node that has both sysctl::default
and supermarket-omnibus-cookbook::default
and sets some custom sysctl values.
n/a
n/a
As reported in here, users currently cannot downgrade Supermarket through this cookbook. This is something we will need to fix and provide documentation on how to do it.
3.0.0
13.8.5
redhat 7.5 in AWS
With node['supermarket_omnibus']['package_url'] set to our internal Nexus URL for the package, which mirrors the chef-stable yum repo of Chef, the chef run downloads the RPM every time.
Our wrapper cookbook sets node['supermarket_omnibus']['package_url'] to our internal Nexus repo, which mirrors the chef-stable yum repo of Chef.
the chef run should only download this once
We're seeing the rpm being downloaded on every chef run
* remote_file[/var/chef/cache/supermarket-3.1.72-1.el7.x86_64.rpm] action create[2018-09-17T01:50:01+00:00] INFO: Processing remote_file[/var/chef/cache/supermarket-3.1.72-1.el7.x86_64.rpm] action create (/var/chef/cache/cookbooks/supermarket-omnibus-cookbook/resources/supermarket_server.rb line 37)
cookbook still lists as dependency chef-server-ingredient which is now deprecated (and replaced by chef-ingredient), making it a little harder to knife install directly from marketplace.
3.0.0
15.1.36
Ubuntu 16 on AWS
Chef Supermarket running on an AWS instance and configured to use S3 for storage. The S3 bucket is configured with an appropriate bucket policy, limiting access to its contents to the AWS account, with the "Block all public access" bucket-level option selected.
Chef supermarket should still be able to write new versions of cookbooks and new cookbooks.
Chef supermarket fails to accept new cookbooks.
When using stove or knife it fails.
Making tarball xmpp_role.tgz
DEBUG: Signing: method: post, url: https://supermarket.internal-domain.com/api/v1/cookbooks, file: #<File:0x0000000007278e48>, User-id: mbainter, Timestamp: 2019-07-30T22:54:39Z
ERROR: Error uploading cookbook my_cookbook to Supermarket: parse error: trailing garbage
500 Internal Server Error If you ar
(right here) ------^
. Increase log verbosity (-VV) for more information.
TRACE:
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36/lib/chef/json_compat.rb:35:in `rescue in parse'
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36/lib/chef/json_compat.rb:32:in `parse'
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36/lib/chef/json_compat.rb:40:in `from_json'
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36/lib/chef/knife/supermarket_share.rb:132:in `do_upload'
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36/lib/chef/knife/supermarket_share.rb:96:in `run'
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36/lib/chef/knife.rb:475:in `block in run_with_pretty_exceptions'
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36/lib/chef/local_mode.rb:42:in `with_server_connectivity'
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36/lib/chef/knife.rb:474:in `run_with_pretty_exceptions'
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36/lib/chef/knife.rb:222:in `run'
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36/lib/chef/application/knife.rb:162:in `run'
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36/bin/knife:24:in `<top (required)>'
/opt/chefdk/bin/knife:319:in `load'
/opt/chefdk/bin/knife:319:in `<main>'
2019-07-30_22:54:40.14765 F, [2019-07-30T22:54:40.147561 #318] FATAL -- : [044c306a-da02-436f-8655-f3fa7f2ba733]
2019-07-30_22:54:40.14786 F, [2019-07-30T22:54:40.147826 #318] FATAL -- : [044c306a-da02-436f-8655-f3fa7f2ba733] Aws::S3::Errors::AccessDenied (Access Denied):
2019-07-30_22:54:40.14800 F, [2019-07-30T22:54:40.147959 #318] FATAL -- : [044c306a-da02-436f-8655-f3fa7f2ba733]
2019-07-30_22:54:40.14814 F, [2019-07-30T22:54:40.148105 #318] FATAL -- : [044c306a-da02-436f-8655-f3fa7f2ba733] app/models/cookbook.rb:301:in `block in publish_version!'
2019-07-30_22:54:40.14820 [044c306a-da02-436f-8655-f3fa7f2ba733] app/models/cookbook.rb:274:in `publish_version!'
2019-07-30_22:54:40.14824 [044c306a-da02-436f-8655-f3fa7f2ba733] app/models/cookbook_upload.rb:37:in `block in finish'
2019-07-30_22:54:40.14829 [044c306a-da02-436f-8655-f3fa7f2ba733] app/models/cookbook_upload.rb:36:in `tap'
2019-07-30_22:54:40.14834 [044c306a-da02-436f-8655-f3fa7f2ba733] app/models/cookbook_upload.rb:36:in `finish'
2019-07-30_22:54:40.14839 [044c306a-da02-436f-8655-f3fa7f2ba733] app/controllers/api/v1/cookbook_uploads_controller.rb:48:in `create'
2019-07-30_22:54:40.14977 W, [2019-07-30T22:54:40.149726 #318] WARN -- : [044c306a-da02-436f-8655-f3fa7f2ba733] Can't verify CSRF token authenticity.
2019-07-30_22:54:40.15014 Error during failsafe response: ActionController::InvalidAuthenticityToken
If I clear the "Block public access" option, stove can push cookbooks successfully.
I just installed that lastest version via supermarket-omnibus-cookbook and it did not restart the processes. I could still see the ddtrace errors until I ran supermarket-ctl restart
. This should be automatic.
supermarket-omnibus-cookbook 2.0.1
chef-12.13.37-1.el6.x86_64
CentOS 6.8
perform an upgrade via cookbook by setting version.
default['supermarket_omnibus']['package_version'] = '2.9.15'
supermarket restarts and runs on the desired version without manual restart
old version of code is still running
Alternatively, if roll in fancy_execute
code into the Chef core.
Reason:
Monkeypatching core chef resource. Expands the surface area of things that can go BOOM.
I'm running into this today:
I run supermarket-omnibus-cookbook 1.1.0 in local mode on AWS Linux. It produces an incorrect yum repo file for "chef-stable", resulting in a 404 on the repo.
I then tried running this script by hand: https://packagecloud.io/install/repositories/chef/stable/script.rpm.sh. It created a correct "chef_stable" yum repo for AWS Linux.
Here are some gory details:
supermarket# cat /etc/os-release
NAME="Amazon Linux AMI"
VERSION="2015.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2015.03"
PRETTY_NAME="Amazon Linux AMI 2015.03"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2015.03:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
supermarket# cat /etc/yum.repos.d/chef-stable.repo
# This file was generated by Chef
# Do NOT modify this file by hand.
[chef-stable]
name=Chef chef-stable repository
baseurl=https://packagecloud.io/chef/stable/el/2015/$basearch
enabled=1
gpgcheck=1
gpgkey=https://downloads.chef.io/packages-chef-io-public.key
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
sslverify=true
supermarket# yum repolist
Loaded plugins: priorities, upgrade-helper
https://packagecloud.io/chef/stable/el/2015/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.
https://packagecloud.io/chef/stable/el/2015/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
...snip
supermarket# rm -f /etc/yum.repos.d/chef-stable.repo; yum clean all
supermarket# curl -s https://packagecloud.io/install/repositories/chef/stable/script.rpm.sh | sudo bash
....snip
supermarket# cat /etc/yum.repos.d/chef-stable.repo
cat: /etc/yum.repos.d/chef-stable.repo: No such file or directory
supermarket# cat /etc/yum.repos.d/chef_stable.repo
[chef_stable]
name=chef_stable
baseurl=https://packagecloud.io/chef/stable/el/6/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
[chef_stable-source]
name=chef_stable-source
baseurl=https://packagecloud.io/chef/stable/el/6/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
supermarket# yum repolist | grep chef
chef_stable/x86_64 chef_stable 214
chef_stable-source chef_stable-source 0
supermarket# yum list supermarket
Loaded plugins: priorities, upgrade-helper
973 packages excluded due to repository priority protections
Available Packages
supermarket.x86_64 2.1.0~alpha.0-1.el6 chef_stable
[2017-07-17T12:36:05+00:00] INFO: Forking chef instance to converge...
Starting Chef Client, version 13.2.20
[2017-07-17T12:36:05+00:00] INFO: *** Chef 13.2.20 ***
[2017-07-17T12:36:05+00:00] INFO: Platform: x86_64-linux
[2017-07-17T12:36:05+00:00] INFO: Chef-client pid: 4158
[2017-07-17T12:36:05+00:00] INFO: The plugin path /etc/chef/ohai/plugins does not exist. Skipping...
The server returned a HTTP 404. This usually indicates that your chef_server_url is incorrect.
chef_server_url "https://abcdefghijklmnopqrstuvwxy-z.us-east-1.opsworks-cm.io"
chef_version=13.2.20
ruby=ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
program_name=chef-client worker: ppid=4153;start=12:36:05;
executable=/opt/chef/bin/chef-client
Running handlers:
[2017-07-17T12:36:06+00:00] ERROR: Running exception handlers
Running handlers complete
[2017-07-17T12:36:06+00:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 00 seconds
[2017-07-17T12:36:06+00:00] FATAL: Stacktrace dumped to /var/cache/chef/chef-stacktrace.out
[2017-07-17T12:36:06+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2017-07-17T12:36:06+00:00] ERROR: 404 "Not Found"
[2017-07-17T12:36:06+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
root@supermarket-node:~#
0.2.1
13.7.6
Amazon Linux 2017.09
Install supermarket with a wrapper cookbook
I have it setup with a wrapper cookbook to specify the standard settings as documented. These can be provided if needed, but it appears to be more like this is an Amazon Linux incompatibility. Looking in the issue history it appears there were previously some issues with 2017.03 which were subsequently addressed, so I assume this is intended to be a supported platform (though it isn't listed explicitly in the README as such).
Supermarket installs and is configured
Chef-client run fails with:
Chef::Exceptions::ProviderNotFound: Cannot find a provider for chef_server_ingredient[supermarket] on amazon version 2017.09
* chef_server_ingredient[supermarket] action install
================================================================================
Error executing action `install` on resource 'chef_server_ingredient[supermarket]'
================================================================================
Chef::Exceptions::ProviderNotFound
----------------------------------
Cannot find a provider for chef_server_ingredient[supermarket] on amazon version 2017.09
Resource Declaration:
---------------------
# In /var/chef/cache/cookbooks/supermarket-omnibus-cookbook/recipes/default.rb
32: chef_server_ingredient 'supermarket' do
33: ctl_command 'supermarket-ctl'
34: notifies :reconfigure, 'chef_server_ingredient[supermarket]'
35: end
Compiled Resource:
------------------
# Declared in /var/chef/cache/cookbooks/supermarket-omnibus-cookbook/recipes/default.rb:32:in `from_file'
chef_server_ingredient("supermarket") do
action [:install]
default_guard_interpreter :default
declared_type :chef_server_ingredient
cookbook_name "supermarket-omnibus-cookbook"
recipe_name "default"
ctl_command "supermarket-ctl"
package_name "supermarket"
end
System Info:
------------
chef_version=13.7.16
platform=amazon
platform_version=2017.09
ruby=ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-linux]
program_name=chef-client worker: ppid=9871;start=01:41:51;
executable=/opt/chef/bin/chef-client
* chef_server_ingredient[supermarket] action reconfigure
================================================================================
Error executing action `reconfigure` on resource 'chef_server_ingredient[supermarket]'
================================================================================
Chef::Exceptions::ProviderNotFound
----------------------------------
Cannot find a provider for chef_server_ingredient[supermarket] on amazon version 2017.09
Resource Declaration:
---------------------
# In /var/chef/cache/cookbooks/supermarket-omnibus-cookbook/recipes/default.rb
32: chef_server_ingredient 'supermarket' do
33: ctl_command 'supermarket-ctl'
34: notifies :reconfigure, 'chef_server_ingredient[supermarket]'
35: end
Compiled Resource:
------------------
# Declared in /var/chef/cache/cookbooks/supermarket-omnibus-cookbook/recipes/default.rb:32:in `from_file'
chef_server_ingredient("supermarket") do
action [:install]
default_guard_interpreter :default
declared_type :chef_server_ingredient
cookbook_name "supermarket-omnibus-cookbook"
recipe_name "default"
ctl_command "supermarket-ctl"
package_name "supermarket"
end
System Info:
------------
chef_version=13.7.16
platform=amazon
platform_version=2017.09
ruby=ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-linux]
program_name=chef-client worker: ppid=9871;start=01:41:51;
executable=/opt/chef/bin/chef-client
Generated at 2018-02-09 01:24:18 +0000
Chef::Exceptions::ProviderNotFound: chef_server_ingredient[supermarket] (supermarket-omnibus-cookbook::default line 32) had an error: Chef::Exceptions::ProviderNotFound: Cannot find a provider for chef_server_ingredient[supermarket] on amazon version 2017.09
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/provider_resolver.rb:63:in `resolve'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource.rb:1402:in `provider_for_action'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource.rb:591:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/runner.rb:70:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/runner.rb:98:in `block (2 levels) in converge'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/runner.rb:98:in `each'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/runner.rb:98:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/runner.rb:97:in `converge'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/client.rb:718:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/client.rb:713:in `catch'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/client.rb:713:in `converge'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/client.rb:752:in `converge_and_save'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/client.rb:286:in `run'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application.rb:292:in `block in fork_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application.rb:280:in `fork'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application.rb:280:in `fork_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application.rb:245:in `block in run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/local_mode.rb:44:in `with_server_connectivity'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application.rb:233:in `run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application/client.rb:469:in `sleep_then_run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application/client.rb:458:in `block in interval_run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application/client.rb:457:in `loop'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application/client.rb:457:in `interval_run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application/client.rb:441:in `run_application'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application.rb:59:in `run'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/bin/chef-client:26:in `<top (required)>'
/usr/bin/chef-client:59:in `load'
/usr/bin/chef-client:59:in `<main>'
>>>> Caused by Chef::Exceptions::ProviderNotFound: Cannot find a provider for chef_server_ingredient[supermarket] on amazon version 2017.09
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/provider_resolver.rb:63:in `resolve'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource.rb:1402:in `provider_for_action'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource.rb:591:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/runner.rb:70:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/runner.rb:98:in `block (2 levels) in converge'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/runner.rb:98:in `each'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/runner.rb:98:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/runner.rb:97:in `converge'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/client.rb:718:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/client.rb:713:in `catch'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/client.rb:713:in `converge'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/client.rb:752:in `converge_and_save'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/client.rb:286:in `run'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application.rb:292:in `block in fork_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application.rb:280:in `fork'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application.rb:280:in `fork_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application.rb:245:in `block in run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/local_mode.rb:44:in `with_server_connectivity'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application.rb:233:in `run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application/client.rb:469:in `sleep_then_run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application/client.rb:458:in `block in interval_run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application/client.rb:457:in `loop'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application/client.rb:457:in `interval_run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application/client.rb:441:in `run_application'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/lib/chef/application.rb:59:in `run'
/opt/chef/embedded/lib/ruby/gems/2.4.0/gems/chef-13.7.16/bin/chef-client:26:in `<top (required)>'
/usr/bin/chef-client:59:in `load'
/usr/bin/chef-client:59:in `<main>'
The supermarket_server resource in the supermarket-omnibus-cookbook cookbook should declare unified_mode true
at 1 location:
- /tmp/kitchen/cache/cookbooks/supermarket-omnibus-cookbook/resources/supermarket_server.rb
See https://docs.chef.io/deprecations_unified_mode/ for further details.
3.0.0
17.9.26
Current version fails for me with error " undefined method `repository' " line 58 of default.
While well-intentioned, the "passthrough" attribute for a custom repository is non-functional due to attribute misnaming:
Should be:
node.set['chef-ingredient']['custom-repo-recipe'] = node['supermarket_omnibus']['custom_repo_recipe']
_(--hyphens-- not underscores)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.