Skip to content

Instantly share code, notes, and snippets.

@evansde77
Last active January 29, 2016 23:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save evansde77/8901a70e8c31dd718146 to your computer and use it in GitHub Desktop.
Save evansde77/8901a70e8c31dd718146 to your computer and use it in GitHub Desktop.
Details for reproducing error in docker cookbook dependency under Vagrant/Chef-solo
[08:59:50 derp] (master) vagrant provision derp
==> derp: Loading Berkshelf datafile...
==> derp: Sharing cookbooks with VM
==> derp: Updating Vagrant's Berkshelf...
==> derp: Resolving cookbook dependencies...
==> derp: Fetching 'derp' from source at .
==> derp: Using apt (2.9.2)
==> derp: Using chef-sugar (3.3.0)
==> derp: Using database (4.0.9)
==> derp: Using docker (2.4.7)
==> derp: Using compat_resource (12.5.26)
==> derp: Using build-essential (2.2.4)
==> derp: Using logrotate (1.9.2)
==> derp: Using mysql (6.1.2)
==> derp: Using derp (0.1.0) from source at .
==> derp: Using mariadb (0.3.1)
==> derp: Using mysql2_chef_gem (1.0.2)
==> derp: Using postgresql (4.0.0)
==> derp: Using smf (2.2.7)
==> derp: Using yum-epel (0.6.5)
==> derp: Using rbac (1.0.3)
==> derp: Using openssl (4.4.0)
==> derp: Using yum-mysql-community (0.1.21)
==> derp: Using yum (3.9.0)
==> derp: Vendoring apt (2.9.2) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/apt
==> derp: Vendoring build-essential (2.2.4) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/build-essential
==> derp: Vendoring chef-sugar (3.3.0) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/chef-sugar
==> derp: Vendoring compat_resource (12.5.26) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/compat_resource
==> derp: Vendoring database (4.0.9) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/database
==> derp: Vendoring derp (0.1.0) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/derp
==> derp: Vendoring docker (2.4.7) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/docker
==> derp: Vendoring logrotate (1.9.2) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/logrotate
==> derp: Vendoring mariadb (0.3.1) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/mariadb
==> derp: Vendoring mysql (6.1.2) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/mysql
==> derp: Vendoring mysql2_chef_gem (1.0.2) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/mysql2_chef_gem
==> derp: Vendoring openssl (4.4.0) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/openssl
==> derp: Vendoring postgresql (4.0.0) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/postgresql
==> derp: Vendoring rbac (1.0.3) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/rbac
==> derp: Vendoring smf (2.2.7) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/smf
==> derp: Vendoring yum (3.9.0) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/yum
==> derp: Vendoring yum-epel (0.6.5) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/yum-epel
==> derp: Vendoring yum-mysql-community (0.1.21) to /Users/evansde77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160128-5551-1r296c5-derp/yum-mysql-community
==> derp: The cookbook path '/Users/evansde77/Documents/deployment/derp/data_bags' doesn't exist. Ignoring...
==> derp: Running provisioner: chef_solo...
==> derp: Detected Chef (latest) is already installed
==> derp: Generating chef JSON and uploading...
==> derp: Running chef-solo...
==> derp: stdin: is not a tty
==> derp: [2016-01-29T15:00:01+00:00] INFO: Forking chef instance to converge...
==> derp: Starting Chef Client, version 12.6.0
==> derp: [2016-01-29T15:00:01+00:00] INFO: *** Chef 12.6.0 ***
==> derp: [2016-01-29T15:00:01+00:00] INFO: Chef-client pid: 3965
==> derp: [2016-01-29T15:00:02+00:00] INFO: Setting the run_list to ["recipe[derp::default]"] from CLI options
==> derp: [2016-01-29T15:00:02+00:00] INFO: Run List is [recipe[derp::default]]
==> derp: [2016-01-29T15:00:02+00:00] INFO: Run List expands to [derp::default]
==> derp: [2016-01-29T15:00:02+00:00] INFO: Starting Chef Run for vagrant-7ec12e81
==> derp: [2016-01-29T15:00:02+00:00] INFO: Running start handlers
==> derp: [2016-01-29T15:00:02+00:00] INFO: Start handlers complete.
==> derp: Compiling Cookbooks...
==> derp: /opt/chef/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
==> derp: /opt/chef/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
==> derp: /opt/chef/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
==> derp: /opt/chef/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
==> derp: /opt/chef/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
==> derp: /opt/chef/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
==> derp: /opt/chef/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
==> derp: /opt/chef/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
==> derp: /opt/chef/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
==> derp: /opt/chef/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
==> derp: /opt/chef/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
==> derp: /opt/chef/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
==> derp: /opt/chef/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
==> derp: /opt/chef/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/compat_resource/libraries/autoload.rb:19:in `<top (required)>'
==> derp: /opt/chef/embedded/lib/ruby/2.1.0/forwardable.rb:183:in `setup_run_context'
==> derp:
==> derp: /opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.6.0/bin/chef-solo:25:in `<top (required)>'
==> derp: /usr/bin/chef-solo:54:in `load'
==> derp: /usr/bin/chef-solo:54:in `<main>'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb:39:in `<class:DockerBase>'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb:2:in `<module:DockerCookbook>'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb:1:in `<top (required)>'
==> derp: /opt/chef/embedded/lib/ruby/2.1.0/forwardable.rb:183:in `setup_run_context'
==> derp: /opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.6.0/bin/chef-solo:25:in `<top (required)>'
==> derp: /usr/bin/chef-solo:54:in `load'
==> derp: /usr/bin/chef-solo:54:in `<main>'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb:44:in `<class:DockerBase>'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb:2:in `<module:DockerCookbook>'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb:1:in `<top (required)>'
==> derp: /opt/chef/embedded/lib/ruby/2.1.0/forwardable.rb:183:in `setup_run_context'
==> derp: /opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.6.0/bin/chef-solo:25:in `<top (required)>'
==> derp: /usr/bin/chef-solo:54:in `load'
==> derp: /usr/bin/chef-solo:54:in `<main>'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb:49:in `<class:DockerBase>'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb:2:in `<module:DockerCookbook>'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb:1:in `<top (required)>'
==> derp: /opt/chef/embedded/lib/ruby/2.1.0/forwardable.rb:183:in `setup_run_context'
==> derp: /opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.6.0/bin/chef-solo:25:in `<top (required)>'
==> derp: /usr/bin/chef-solo:54:in `load'
==> derp: /usr/bin/chef-solo:54:in `<main>'
==> derp:
==> derp: ================================================================================
==> derp: Recipe Compile Error in /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb
==> derp: ================================================================================
==> derp:
==> derp:
==> derp: NoMethodError
==> derp: -------------
==> derp: undefined method `coerce_shell_command' for DockerCookbook::DockerBase:Class
==> derp:
==> derp:
==> derp: Cookbook Trace:
==> derp: ---------------
==> derp:
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb:56:in `block in <class:DockerBase>'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/compat_resource/files/lib/chef_compat/copied_from_chef/chef/property.rb:599:in `call'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/compat_resource/files/lib/chef_compat/copied_from_chef/chef/property.rb:599:in `exec_in_resource'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/compat_resource/files/lib/chef_compat/copied_from_chef/chef/property.rb:427:in `coerce'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/compat_resource/files/lib/chef_compat/copied_from_chef/chef/property.rb:91:in `initialize'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/compat_resource/files/lib/chef_compat/copied_from_chef/chef/property.rb:52:in `new'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/compat_resource/files/lib/chef_compat/copied_from_chef/chef/property.rb:52:in `derive'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/compat_resource/files/lib/chef_compat/copied_from_chef/chef/mixin/properties.rb:150:in `property_type'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb:54:in `<class:DockerBase>'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb:2:in `<module:DockerCookbook>'
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb:1:in `<top (required)>'
==> derp:
==> derp: Relevant File Content:
==> derp: ----------------------
==> derp: /tmp/vagrant-chef/d9c3df47f0f3713fdb276cec6c742c12/cookbooks/docker/libraries/docker_base.rb:
==> derp:
==> derp: 49: NonEmptyArray = property_type(
==> derp: 50: is: [Array, nil],
==> derp: 51: coerce: proc { |v| Array(v).empty? ? nil : Array(v) }
==> derp: 52: ) unless defined?(NonEmptyArray)
==> derp: 53:
==> derp: 54: ShellCommand = property_type(
==> derp: 55: is: [String],
==> derp: 56>> coerce: proc { |v| coerce_shell_command(v) }
==> derp: 57: ) unless defined?(ShellCommand)
==> derp: 58:
==> derp: 59: UnorderedArrayType = property_type(
==> derp: 60: is: [UnorderedArray, nil],
==> derp: 61: coerce: proc { |v| v.nil? ? nil : UnorderedArray.new(Array(v)) }
==> derp: 62: ) unless defined?(UnorderedArrayType)
==> derp: 63:
==> derp: 64: PartialHashType = property_type(
==> derp: 65: is: [PartialHash, nil],
==> derp:
==> derp:
==> derp: Running handlers:
==> derp: [2016-01-29T15:00:03+00:00] ERROR: Running exception handlers
==> derp: Running handlers complete
==> derp:
==> derp: [2016-01-29T15:00:03+00:00] ERROR: Exception handlers complete
==> derp: Chef Client failed. 0 resources updated in 02 seconds
==> derp: [2016-01-29T15:00:03+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
==> derp: [2016-01-29T15:00:03+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
==> derp: [2016-01-29T15:00:03+00:00] ERROR: undefined method `coerce_shell_command' for DockerCookbook::DockerBase:Class
==> derp: [2016-01-29T15:00:03+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
Chef never successfully completed! Any errors should be visible in the
output above. Please fix your recipes so that they properly complete.
berks cookbook derp
cd derp
bundle install
# edit Vagrantfile (see below)
vagrant up derp # all good
emacs Berksfile # add docker dependency
berks install
vagrant provision derp # still good
emacs metadata.rb # add dep on docker cookbook
vagrant provision derp # error
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = '2'
Vagrant.require_version '>= 1.5.0'
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# All Vagrant configuration is done here. The most common configuration
# options are documented and commented below. For a complete reference,
# please see the online documentation at vagrantup.com.
config.berkshelf.enabled = true
# Set the version of chef to install using the vagrant-omnibus plugin
# NOTE: You will need to install the vagrant-omnibus plugin:
#
# $ vagrant plugin install vagrant-omnibus
#
if Vagrant.has_plugin?("vagrant-omnibus")
config.omnibus.chef_version = 'latest'
end
config.vm.define "derp" do |derp|
derp.vm.hostname = 'derp-berkshelf'
derp.vm.box = "derp"
derp.vm.box = 'bento/ubuntu-14.04'
derp.vm.network :private_network, type: 'dhcp'
derp.vm.provision :chef_solo do |chef|
chef.json = {
mysql: {
server_root_password: 'rootpass',
server_debian_password: 'debpass',
server_repl_password: 'replpass'
}
}
chef.data_bags_path = "data_bags"
chef.run_list = [
'recipe[derp::default]'
]
end
end
end
chef-solo -v
Chef: 12.6.0
berks -v
4.0.1
vagrant version
Installed Version: 1.8.1
Latest Version: 1.8.1
vagrant plugin list
vagrant-berkshelf (4.1.0)
vagrant-share (1.1.5, system)
@someara
Copy link

someara commented Jan 29, 2016

Investigating.. I have a feeling this has to do with compat_resource

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment