Giter VIP home page Giter VIP logo

supermarket-omnibus-cookbook's People

Contributors

alexpop avatar jeremymv2 avatar mbainter avatar nellshamrell avatar robbkidd avatar tas50 avatar vinyar avatar xorimabot avatar yzl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

supermarket-omnibus-cookbook's Issues

Upload this cookbook version 1.1.0 to supermarket and override the existing one

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.

add encrypted data_bag or chef_vault docs

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

Exception thrown near the end of otherwise-successful Chef runs

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?

Make Supermarket Upgrade Process Delightful

Currently Supermarket upgrade process not delightful. These steps would make it more delightful.

  1. Modify default recipe so that it attempts all steps necessary to upgrade Supermarket node
  2. Document version pinning attribute
  3. Compose discrete install/upgrade steps into separate recipes

See #32 for more details

Only converges successfully when chef-client run by hand + HOME env variable

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

install package source

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.

Supermarket

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?

Private supermarket installation fails on Amazon Linux 2017.03

Cookbook version

3.0.0

Chef-client version

Chef: 12.21.3

Platform Details

Amazon Linux AMI release 2017.03

Scenario:

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?

Steps to Reproduce:

Including supermarket-omnibus-cookbook cookbook.

Expected Result:

[What are you expecting to happen as the consequence of above reproduction steps?]

Actual Result:

---- 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

What's the minimum version of Chef Server supported with this cookbook?

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

Can't install onto RDS

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

supermarket.json permissions 644, should be 600

Cookbook version

3.0.0

Chef-client version

13.8.5

Platform Details

AWS, CentOS 7

Scenario:

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.

Steps to Reproduce:

  1. Use a wrapper cookbook to run supermarket-omnibus-cookbook, setting (for example) your Postgres server to something custom
  2. Examine the ownership and permissions of /etc/supermarket/supermarket.json

Expected Result:

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.

Actual Result:

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.

Cannot configure supermarket's sysctl attributes

Cookbook version

3.0.0

Chef-client version

12.17.44

Platform Details

RHEL 7

Scenario:

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.

Steps to Reproduce:

Converge a node that has both sysctl::default and supermarket-omnibus-cookbook::default and sets some custom sysctl values.

Expected Result:

n/a

Actual Result:

n/a

supermarket-omnibus rpm is always downloaded

Cookbook version

3.0.0

Chef-client version

13.8.5

Platform Details

redhat 7.5 in AWS

Scenario:

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.

Steps to Reproduce:

Our wrapper cookbook sets node['supermarket_omnibus']['package_url'] to our internal Nexus repo, which mirrors the chef-stable yum repo of Chef.

Expected Result:

the chef run should only download this once

Actual Result:

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)

chef-server-ingredient problem

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.

support using instance metadata for S3 access

Cookbook version

3.0.0

Chef-client version

15.1.36

Platform Details

Ubuntu 16 on AWS

Scenario:

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.

Expected Result:

Chef supermarket should still be able to write new versions of cookbooks and new cookbooks.

Actual Result:

Chef supermarket fails to accept new cookbooks.

When using stove or knife it fails.

Stove output:

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>'

supermarket log

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.

upgrade/downgrade should restart services

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.

Cookbook version

supermarket-omnibus-cookbook 2.0.1

Chef-client version

chef-12.13.37-1.el6.x86_64

Platform Details

CentOS 6.8

Steps to Reproduce:

perform an upgrade via cookbook by setting version.

default['supermarket_omnibus']['package_version'] = '2.9.15'

Expected Result:

supermarket restarts and runs on the desired version without manual restart

Actual Result:

old version of code is still running

Remove dependency on fancy_execute

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.

incorrect yum repo file created for "chef-stable" repo on AWS Linux

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

Error on Setting up Private Super Market

[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...

================================================================================
Chef encountered an error attempting to load the node data for "my-supermarket.com"

Resource Not Found:

The server returned a HTTP 404. This usually indicates that your chef_server_url is incorrect.

Relevant Config Settings:

chef_server_url "https://abcdefghijklmnopqrstuvwxy-z.us-east-1.opsworks-cm.io"

System Info:

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:~#

Supermarket fails to install on Amazon Linux 2017.09

Cookbook version

0.2.1

Chef-client version

13.7.6

Platform Details

Amazon Linux 2017.09

Scenario:

Install supermarket with a wrapper cookbook

Steps to Reproduce:

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).

Expected Result:

Supermarket installs and is configured

Actual Result:

Chef-client run fails with:

Chef::Exceptions::ProviderNotFound: Cannot find a provider for chef_server_ingredient[supermarket] on amazon version 2017.09
chef-client output

  * 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

Stack trace

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>'

Chef Client 17 Deprecations

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.

Cookbook version

3.0.0

Chef-client version

17.9.26

Custom repository "option" non-functional due to malformed attribute

While well-intentioned, the "passthrough" attribute for a custom repository is non-functional due to attribute misnaming:

node.set['chef-ingredient']['custom_repo_recipe'] = node['supermarket_omnibus']['custom_repo_recipe']

Should be:

node.set['chef-ingredient']['custom-repo-recipe'] = node['supermarket_omnibus']['custom_repo_recipe']

_(--hyphens-- not underscores)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.