Git Product home page Git Product logo

kitchenplan's Introduction

I've recently released a new, cleaner, faster solution based on Ansible. Please read about it in this blog post

Kitchenplan

Kitchenplan is a small tool to fully automate the installation and configuration of an OSX workstation (or server for that matter) using Chef. But while doing so manually is not a trivial undertaking, Kitchenplan has abstracted away all the hard parts.

Using kitchenplan

Installation

First of all, you need to install the kitchenplan gem. It only depends on thor, gabba and deep_merge so it won't dirty up your brand new and clean install.

gem install kitchenplan

Setting up

Next up we can start the setup of Kitchenplan. Just run kitchenplan setup and you will see the following prompt

  _  ___ _       _                      _
 | |/ (_) |     | |                    | |
 | ' / _| |_ ___| |__   ___ _ __  _ __ | | __ _ _ __
 |  < | | __/ __| '_ \ / _ \ '_ \| '_ \| |/ _` | '_ \
 | . \| | || (__| | | |  __/ | | | |_) | | (_| | | | |
 |_|\_\_|\__\___|_| |_|\___|_| |_| .__/|_|\__,_|_| |_|
                                 | |
                                 |_|

-> Installing XCode CLT
         run  sw_vers -productVersion | awk -F "." '{print $2}' from "."
         run  touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress from "."
         run  softwareupdate -l | grep -B 1 "Developer" | head -n 1 | awk -F"*" '{print $2}' from "."
         run  softwareupdate -i  -v from "."

Do you have a config repository? [y,n] n

If this is your first install using v2.1 of Kitchenplan, your aswer will be no. By doing so Kitchenplan will setup '/opt', create the kitchenplan folder structure, setup a bare configuration and put it all in a local git repository. Put this repository on Github (or any git server) and get to working on the configuration files.

-> Making sure /opt exists and I can write to it
         run  sudo mkdir -p /opt from "."
         run  sudo chown -R roderik /opt from "."
-> Creating the config folder structure
         run  mkdir -p kitchenplan from "/opt"
         run  mkdir -p config from "/opt/kitchenplan"
         run  mkdir -p groups from "/opt/kitchenplan/config"
         run  mkdir -p people from "/opt/kitchenplan/config"
-> Creating the template config files
      create  /opt/kitchenplan/README.md
      create  /opt/kitchenplan/config/default.yml
      create  /opt/kitchenplan/config/groups/groupa.yml
      create  /opt/kitchenplan/config/groups/groupb.yml
      create  /opt/kitchenplan/config/people/roderik.yml
-> Preparing the Cookbook configuration
      create  /opt/kitchenplan/Cheffile
-> Setting up the git repo
      create  /opt/kitchenplan/.gitignore
         run  git init -q from "/opt/kitchenplan"
         run  git add -A . from "/opt/kitchenplan"
         run  git commit -q -m 'Clean installation of the Kitchenplan configs for user roderik' from "/opt/kitchenplan"
=> Now start editing the config files in /opt/kitchenplan/config, push them to a git server and run 'kitchenplan provision'

Now, if you have a config repository, you don't want to start with a bare config but use your version. Answer yes and enter your git repo in the next prompt. It will then fetch your configs.

Do you have a config repository? [y,n] y
Please enter the clone URL of your git config repository: https://github.com/roderik/kitchenplan-config.git
-> Making sure /opt exists and I can write to it
         run  sudo mkdir -p /opt from "."
         run  sudo chown -R roderik /opt from "."
-> Fetching https://github.com/roderik/kitchenplan-config.git to /opt/kitchenplan.
         run  git clone -q https://github.com/roderik/kitchenplan-config.git kitchenplan from "/opt"

WARNING: Chef v12 breaks everyhting related to the way users work in Kitchenplan. Please update your Gemfile to look like:

source "https://rubygems.org"

gem "chef", "~> 11.0"
gem "librarian-chef", "~> 0.0.2"

Editing the config files in /opt/kitchenplan/config

The most important file is named after your user in config/people/. In my case a roderik.yml file since my username on my Mac is roderik. When running kitchenplan setup will create a YAML file in this folder with your username. You can use your config repository for everyone in your organisation by adding a file per username in the people folder.

The final config that will be compiled, will be default.yml + username.yml + the group YAML files defined in username.yml + the group YAML files defined in those groups + the group YAML files defined in default.yml. Everything that is a "list" is appended to each other, single value's are overridden.

Now, how you organise your config files is entirely up to you, but this is how I do it. default.yml are the apps that everyone in my company needs. Then I have a group file per department in our company, and sometimes for a specific subset of people in that department.

If you want to see a fully implemented example, please see my config repository

Running the install procedure

Running Kitchenplan is as easy as running kitchenplan provision

  _  ___ _       _                      _
 | |/ (_) |     | |                    | |
 | ' / _| |_ ___| |__   ___ _ __  _ __ | | __ _ _ __
 |  < | | __/ __| '_ \ / _ \ '_ \| '_ \| |/ _` | '_ \
 | . \| | || (__| | | |  __/ | | | |_) | | (_| | | | |
 |_|\_\_|\__\___|_| |_|\___|_| |_| .__/|_|\__,_|_| |_|
                                 | |
                                 |_|

-> Setting up bundler
      create  /opt/kitchenplan/Gemfile
         run  mkdir -p vendor/cache from "/opt/kitchenplan"
         run  rm -rf vendor/bundle/config from "/opt/kitchenplan"
         run  bundle install --quiet --binstubs vendor/bin --path vendor/bundle from "/opt/kitchenplan"
-> Sending a ping to Google Analytics
-> Compiling configurations
         run  mkdir -p tmp from "/opt/kitchenplan"
-> Fetch the chef cookbooks
         run  vendor/bin/librarian-chef install --clean --quiet --path=vendor/cookbooks from "/opt/kitchenplan"
         run  sudo vendor/bin/chef-solo -c tmp/solo.rb -j tmp/kitchenplan-attributes.json -o applications::create_var_chef_cache,homebrewalt::default,nodejs::default,... from "/opt/kitchenplan"

At this point Chef will start installing everything you configured. Depending on your install list, this might take a while. It will hopefully go smooth and end with

-> Cleanup parsed configuration files
         run  rm -f kitchenplan-attributes.json from "/opt/kitchenplan"
         run  rm -f solo.rb from "/opt/kitchenplan"
=> Installation complete!

Some blogposts about Kitchenplan

History

This is a brand new implementation of Kitchenplan. If you have issues with this new versions, please use version2 for now.

Contributing to kitchenplan

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
  • Fork the project.
  • Start a feature/bugfix branch.
  • Commit and push until you are happy with your contribution.
  • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.

Copyright

Copyright (c) 2014 Roderik van der Veer. See LICENSE.txt for further details.

Acknowledgements

This project is inspired and built by using components and idea's from: Boxen, pivotal_workstation, Opscode cookbooks, and more. Please take any imitation as a the highest form of flattery. If you feel the source or acknowledgements are not sufficient, please let me know how you want it to be resolved.

kitchenplan's People

Contributors

betamatt avatar bitdeli-chef avatar dsbaars avatar indieisaconcept avatar jozefizso avatar krispypen avatar lamdor avatar leoj3n avatar mi-wood avatar mkcode avatar neilpa avatar rickard-von-essen avatar roderik avatar vid-n3t avatar wireframe avatar

Stargazers

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

kitchenplan's Issues

Unwanted Applications Installed

I forked (rawkode/kitchenplan) and run the installer with:

kitchenplan rawkode$ export KITCHENPLAN_REPO=https://github.com/rawkode/kitchenplan.git
kitchenplan rawkode$ ruby -e "$(curl -fsSL https://raw.github.com/kitchenplan/kitchenplan/master/go)"

I removed all references to mysql/postgresql from rawkode.yml, though the installer still installed them.

Kitchenplan not pulling mac_os_x receipes

On a clean install of Mavericks, the recipes under the 'mac_os_x' section of all config files are ignored.

I setup the KITCHENPLAN_REPO ENV variable to point to my GH repo and ran the go command. Is there an issue with the script picking up mac_os_x recipes under mavericks?

trmmbpro:~ tegamckinney$ ruby -e "$(curl -fsSL https://raw.github.com/kitchenplan/kitchenplan/master/go)"
==> This script will install:
  - Command Line Tools if they are not installed
  - Chef
  - All applications configured in .yml or if not available roderik.yml

Warning: Unless by chance your user is also named Roderik, and you want exactly the same applications as I, use the KITCHENPLAN_REPO env to point to a fork with a config file named for your username.


Press ENTER to continue or any other key to abort

==> Installing the Command Line Tools (expect a GUI popup):
==> /usr/bin/sudo /usr/bin/xcode-select --install

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
xcode-select: note: install requested for command line developer tools
Press any key when the installation has completed.
==> Setting up the Kitchenplan installation...
==> /usr/bin/sudo mkdir -p /opt
Password:
==> /usr/bin/sudo chown -R tegamckinney /opt
==> git clone -q https://github.com/tegamckinney/kitchenplan.git /opt/kitchenplan
==> ./kitchenplan 
==> (gem spec bundler -v > /dev/null 2>&1) || sudo gem install bundler --no-rdoc --no-ri
Fetching: bundler-1.5.1.gem (100%)
Successfully installed bundler-1.5.1
1 gem installed
==> /usr/bin/sudo bundle install --binstubs=bin --quiet
==> Sending a ping to Google Analytics to count usage
==> Generating the Chef configs
Warning: no ruby in PATH/CONFIG
==> bin/librarian-chef install --clean --quiet
==> /usr/bin/sudo bin/chef-solo --log_level error -c solo.rb -j kitchenplan-attributes.json -o applications::create_var_chef_cache,applications::google-chrome,applications::firefox,applications::java,applications::vlc,applications::bash-completion,dotfiles::bash_it,dotfiles::inputrc,applications::git,applications::wget,applications::pwgen,applications::xmlstarlet,applications::pv,applications::htop,dotfiles::gitconfig,applications::grunt-cli,applications::bower,applications::git-flow,applications::sass,applications::siege,applications::nodejs,applications::ssh_config,dotfiles::vim,applications::composer,dotfiles::workspace,applications::postgresql,applications::psycopg2,applications::mysql,applications::mysql_python,applications::apache,applications::php55
Starting Chef Client, version 11.8.2
Unable to find any JVMs matching version "(null)".
No Java runtime present, try --request to install.
Compiling Cookbooks...
sudo: brew: command not found
Converging 122 resources

Can Kitchenplan refer to a file?

I would like to put my my_authorized_key somewhere in config/people/

attributes:
    ssh_key:
        authorized_keys:  <%= File.read('my_authorized_key') %>

In chef-dotfiles, I can just do this

file "#{dot_ssh_dir}/authorized_keys" do
  content node['ssh_key']['authorized_keys']
  owner node['current_user']
  mode "0600"
end

Feature request: Use homebrew-cask as provider for GUI installations

I've been investigating various automated installation frameworks and kitchenplan looks promising. Have you thought about using homebrew-cask for GUI apps in order to keep as much as possible under Homebrew management? I don't currently have the Ruby foo, otherwise I'd issue a pull request myself...

Can I specify package options when installing via attributes?

v2.0 introduced installing by specifying 'apps' and 'cask_apps' attributes in the config. From the code of homebrewalt's package provider, it looks like installing this way uses the default Homebrew options for the formula. Is the only way to specify those only by writing a custom recipe? Even a common one, like --HEAD?

Setup memcache

Speeds up dev environment when used as profiler and sessions cache
Also useable as doctrine cache

git publish and other custom git commands don't work

Apparently the kitchenplan install does not install the same git version (or at least not the same custom commands) that were installed before. I'm quite used to typing git publish new-branch to publish a branch, and now this no longer works, and I have no idea where/how these were defined :(.

Xcode not detected correctly in 10.9.x

Currently the code uses

install_clt unless File.exists?("/usr/bin/cc")

to check whether XCode needs to be installed. This does not work on OS X 10.9 Mavericks as the file exists, but will prompt the installer to be loaded. An alternative way to detect XCode installation can be seen for example at: http://railsapps.github.io/xcode-command-line-tools.html, specifically:

$ xcode-select -p

To see if there is a directory, for example:

/Applications/Xcode.app/Contents/Developer

Unfortunately as I am now just reinstalling my developer machine (and using your script), I can't provide you a fix, but if you haven't fixed this in a couple days, I will post a commit.

Node package binaries can't be executed

Node package binaries can't be executed on the command-line because they aren't accessible. This can be fixed by adding /usr/local/share/npm/bin to your $PATH variable.

We had this issue on an osx mountain lion.

gem error during install

hi,
i'm getting this error during install:

==> (gem spec bundler -v > /dev/null 2>&1) || sudo gem install bundler --no-rdoc --no-ri
ERROR: While executing gem ... (Gem::RemoteSourceException)
HTTP Response 301
Failed during: (gem spec bundler -v > /dev/null 2>&1) || sudo gem install bundler --no-rdoc --no-ri
Failed during: ./kitchenplan

When using in combination with rbenv or rvm, kitchenplan is confused and throws error on missing gem

I have this error when trying to re-run kitchenplan provision on an existing kitchenplan run. I think it is because we use rbenv and it confused as to which ruby is it using on kitchenplan. I'm currently blocked by this.

 |system| esxi-test-01 in /opt/kitchenplan
ยฑ |master โœ—| โ†’ kitchenplan provision
  _  ___ _       _                      _             
 | |/ (_) |     | |                    | |            
 | ' / _| |_ ___| |__   ___ _ __  _ __ | | __ _ _ __  
 |  < | | __/ __| '_ \ / _ \ '_ \| '_ \| |/ _` | '_ \ 
 | . \| | || (__| | | |  __/ | | | |_) | | (_| | | | |
 |_|\_\_|\__\___|_| |_|\___|_| |_| .__/|_|\__,_|_| |_|
                                 | |                  
                                 |_|                  

-> Making sure /opt exists and I can write to it
         run  sudo mkdir -p /opt from "."
         run  sudo chown -R jenkins /opt from "."
-> Setting up bundler
   identical  Gemfile
         run  mkdir -p vendor/cache from "."
         run  rm -rf vendor/bundle/config from "."
         run  ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future bundle install --quiet --binstubs vendor/bin --path vendor/bundle from "."
-> Sending a ping to Google Analytics
-> Compiling configurations
         run  mkdir -p tmp from "."
-> Fetch the chef cookbooks
         run  vendor/bin/librarian-chef update 2>&1 > /dev/null from "."
         run  sudo vendor/bin/chef-solo   -c tmp/solo.rb -j tmp/kitchenplan-attributes.json -o applications::create_var_chef_cache,homebrewalt::default,osxdefaults::add_note_to_loginscreen,osxdefaults::disable_auto-correct,osxdefaults::enable_subpixel_font_rendering_on_non-apple_lcds,osxdefaults::finder_small_sidebar_icon_size,osxdefaults::automatically_illuminate_built-in_macbook_keyboard_in_low_light,osxdefaults::automatically_quit_printer_app_once_the_print_jobs_complete,osxdefaults::avoid_creating_ds_store_files_on_network_volumes,osxdefaults::disable_resume_system-wide,osxdefaults::save_screenshots_in_png_format,osxdefaults::save_screenshots_to_the_desktop,osxdefaults::enable_remote_desktop,applications::bash,dotfiles::bash_it,dotfiles::inputrc,osxdefaults::set_terminal_profile,dotfiles::vim,dotfiles::gitconfig,applications::mysql,applications::ssh_config,applications::composer,dotfiles::xcode_setup,osxdefaults::enable_developer_mode,osxdefaults::dock_automatically_hide_and_show_the_dock,osxdefaults::dock_do_not_animate_opening_applications_from_the_dock,osxdefaults::dock_enable_spring_loading_for_all_dock_items,osxdefaults::dock_make_dock_icons_of_hidden_applications_translucent,osxdefaults::dock_minimize_to_application,osxdefaults::dock_set_the_icon_size_of_dock_items_to_36_pixels,osxdefaults::dock_show_indicator_lights_for_open_applications_in_the_dock,osxdefaults::dock_position_the_dock_on_the_left_side,osxdefaults::dock_enable_highlight_hover_effect_for_the_grid_view_of_a_stack,osxdefaults::dock_remove_the_animation_when_hiding_showing_the_dock,osxdefaults::dock_remove_the_auto-hiding_dock_delay,osxdefaults::menu_add_battery_percentage,osxdefaults::menu_show_clock_with_date,osxdefaults::add_a_context_menu_item_for_showing_the_web_inspector_in_web_views,osxdefaults::disable_press-and-hold_for_keys_in_favor_of_key_repeat,osxdefaults::enable_safari_debug_menu,osxdefaults::set_a_blazingly_fast_keyboard_repeat_rate,applications::gcc42,applications::ios-sim,applications::svgo,applications::sublime_text_3,applications::rbenv,applications::rbenv-gemset,dotfiles::workspace,applications::postgresql,osxdefaults::disable_disk_image_verification,osxdefaults::disable_gatekeeper,osxdefaults::disable_front_row,osxdefaults::enable_assistive_devices,osxdefaults::enable_full_keyboard_access_for_all_controls,osxdefaults::increase_window_resize_speed_for_cocoa_applications,osxdefaults::speed_up_mission_control_animations,osxdefaults::tap_to_click,osxdefaults::do_not_show_dashboard_as_a_space,osxdefaults::prevent_time_machine_from_prompting_to_use_new_hard_drives_as_backup_volume,osxdefaults::finder_allow_text_selection_in_quick_look,osxdefaults::finder_display_full_path,osxdefaults::finder_use_column_view_in_all_finder_windows_by_default,osxdefaults::finder_new_finder_windows_shows_homefolder,osxdefaults::finder_automatically_open_a_new_finder_window_when_a_volume_is_mounted,osxdefaults::finder_disable_the_warning_before_emptying_the_trash,osxdefaults::finder_disable_the_warning_when_changing_a_file_extension,osxdefaults::finder_search_the_current_folder_by_default,osxdefaults::finder_unhide_home,sudoalt::default,dotfiles::ssh_key,nodejs::default,osxdefaults::fix_usr_local_permission,osxdefaults::authorize_use_ios_simulator from "."
Could not find archive-tar-minitar-0.5.2 in any of the sources
Run `bundle install` to install missing gems.

permission problems when using sudo to write in Homebrew folder

Hi,
I am having permission problems on my OSX 10.9.2 when I run provision [1]

The system is generated from an image, so the initial user is different from the one I am using. Nevertheless I am in the admin and wheel groups, and the directory that fails with permission is assigned to group admin:

NY-INSTestMAC:~ eteotti$ sudo -u eteotti touch /Library/Caches/Homebrew/foo
touch: /Library/Caches/Homebrew/foo: Permission denied

the funny (or scary) thing is when you run the same command without sudo it works file:

touch /Library/Caches/Homebrew/foo

If I manually chmod a+w I can bypass this, but I wanted to raise it as a problem since other people that want to provision software development images coming from an IT department might find this problem.

What's the reason behind using sudo on that command?

[1]

[2014-03-28T09:28:29-04:00] ERROR: package[brew-cask] (homebrewalt::default line 53) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of sudo -u eteotti brew install --HEAD brew-cask ----
STDOUT: 
STDERR: Error: Permission denied - /Library/Caches/Homebrew/Formula
---- End output of sudo -u eteotti brew install --HEAD brew-cask ----
Ran sudo -u eteotti brew install --HEAD brew-cask returned 1
[2014-03-28T09:28:29-04:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

Updating installed dmg's

When the download link in the recipe gets changed to a newer version of an app, the app doesn't get updated when kitchenplan runs. This is because it doesn't know what version is currently installed. This can be fixed by adding the checksum or by including a version-id. What would be the best solution?

Actionplan stability

We currently have some stability issues due to changing cookbooks, here is a brainstorm to counter this.

  • lock all dependencies to a version
  • start splitting out the kitchenplan cookbooks into smaller cookbooks with no dependencies (e.g. A Homebrew cookbook, and a Homebrew cask cookbook, etc)
  • if we depend on some other cookbook make a small cookbook that just wraps it
  • make os specific cookbooks and not try to do everything together, for now we drop all non OSX code
  • figure out a way to run a real ci environment
  • start with versioning kitchenplan using semver

Thoughts?

Recursive config group resolution

Hi I've been playing around with @kitchenplan the last couple of days and I can see it becoming indispensable!

One small tweak I have made is to support multiple groups to be recursively resolved. My specific use case for this is as follows:

people
|-- barnettj.yaml
|-- indieisaconcept.yaml

Both users above are the same ( me ) but one is for personal use and the other is for work. Settings vary slightly between the two, so I just want to manage the variation.

In both I have set them to inherit from roles/people/indieisaconcept, which then also inherits from some other groups, eg: roles/engineering.

It's my intention to have granular groups to allow top level groups to be made up of other groups which users inherit.

Ruby is not my usual language but I was able to add this support with a couple of small changes. I wanted to get feedback to see if this feature could be useful ( + implemented correctly ) to other kitchenplan users and if you think it is I'm happy to raise a pull request.

The change is basically lib/kitchenplan/config.rb

    def parse_group_configs(group = @people_config['groups'])
        @group_configs = {}
        defined_groups = group || []
        defined_groups.each do |group|
            self.parse_group_config(group)
        end
    end

    def parse_group_config(group)
        if !@group_configs[group]
            group_config_path = "config/groups/#{group}.yml"
            @group_configs[group] = ( YAML.load(ERB.new(File.read(group_config_path)).result) if File.exist?(group_config_path) ) || {}
            defined_groups = @group_configs[group]['groups']
            if defined_groups
                self.parse_group_configs(defined_groups)
            end
        end
    end

Strange load issue in ohai on this box?

vagrant@quantal64:~$ cd /opt/kitchenplan/
vagrant@quantal64:/opt/kitchenplan$ ./kitchenplan -d
Fetching: bundler-1.3.4.gem (100%)
Successfully installed bundler-1.3.4
1 gem installed
bundle install --deployment --local --binstubs=bin --no-cache --verbose
Using archive-tar-minitar (0.5.2) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/archive-tar-minitar-0.5.2.gemspec 
Using erubis (2.7.0) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/erubis-2.7.0.gemspec 
Using highline (1.6.16) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/highline-1.6.16.gemspec 
Using json (1.7.7) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/json-1.7.7.gemspec 
Using mixlib-log (1.4.1) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/mixlib-log-1.4.1.gemspec 
Using mixlib-authentication (1.3.0) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/mixlib-authentication-1.3.0.gemspec 
Using mixlib-cli (1.3.0) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/mixlib-cli-1.3.0.gemspec 
Using mixlib-config (1.1.2) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/mixlib-config-1.1.2.gemspec 
Using mixlib-shellout (1.1.0) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/mixlib-shellout-1.1.0.gemspec 
Using net-ssh (2.6.6) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/net-ssh-2.6.6.gemspec 
Using net-ssh-gateway (1.2.0) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/net-ssh-gateway-1.2.0.gemspec 
Using net-ssh-multi (1.1) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/net-ssh-multi-1.1.gemspec 
Using ipaddress (0.8.0) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/ipaddress-0.8.0.gemspec 
Using systemu (2.5.2) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/systemu-2.5.2.gemspec 
Using yajl-ruby (1.1.0) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/yajl-ruby-1.1.0.gemspec 
Using ohai (6.16.0) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/ohai-6.16.0.gemspec 
Using mime-types (1.21) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/mime-types-1.21.gemspec 
Using rest-client (1.6.7) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/rest-client-1.6.7.gemspec 
Using chef (11.4.0) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/chef-11.4.0.gemspec 
Using thor (0.17.0) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/thor-0.17.0.gemspec 
Using librarian (0.0.26) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/librarian-0.0.26.gemspec 
Using soloist (0.9.7) from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/specifications/soloist-0.9.7.gemspec 
Using bundler (1.3.4) from /opt/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.3.4/lib/bundler/source 
Your bundle is complete!
It was installed into ./vendor/bundle
/opt/kitchenplan/vendor/bundle/ruby/1.9.1/gems/yajl-ruby-1.1.0/lib/yajl.rb:1:in `require': cannot load such file -- yajl/yajl (LoadError)
    from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/gems/yajl-ruby-1.1.0/lib/yajl.rb:1:in `<top (required)>'
    from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/gems/ohai-6.16.0/lib/ohai/system.rb:26:in `require'
    from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/gems/ohai-6.16.0/lib/ohai/system.rb:26:in `<top (required)>'
    from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/gems/ohai-6.16.0/lib/ohai.rb:21:in `require'
    from /opt/kitchenplan/vendor/bundle/ruby/1.9.1/gems/ohai-6.16.0/lib/ohai.rb:21:in `<top (required)>'
    from /opt/kitchenplan/lib/kitchenplan/config.rb:3:in `require'
    from /opt/kitchenplan/lib/kitchenplan/config.rb:3:in `<top (required)>'
    from ./kitchenplan:88:in `require'
    from ./kitchenplan:88:in `<main>'
vagrant@quantal64:/opt/kitchenplan$ 

Why limit to Mountain Lion and Mavericks?

The go script aborts if OSX is older than Mountain Lion (line 120). What is the reason for this? Any specific recipes that don't work on earlier versions? I notice just a few lines later in the same script, there is logic for handling Xcode on pre-ML versions. So either that's redundant, or the abort on pre-10.8 is too strict. (For comparison, Homebrew fully supports Lion, and 10.5/6 "on a best-effort basis".)

splitup branch feedback

@roderik,

Changes look good so far. Setup is really straightforward and really promotes clean separation between kitchenplan and configuration.

A couple of thoughts I had, below.

Should groups be separate from people? ( consider the following )

Within an organisation, there are standardised roles which can map to a configuration group. When a new person joins a team ( i.e their first day ) they'll be given a machine and need to set it up.

They would potentially need the bare essentials a group provides to allow them to then customise their own configuration.

It's sort of a which comes first the chicken or the egg type situation.

Equally I'm not sure I'd want individual users being able to modify the configuration of other users since they will be within the same repository.

What are your thoughts on the below?

> kitchenplan setup
> ....
> Do you have a config repository? [y,n]  // downloads config groups + possible users
> Do you have a user repository? [y,n]    // downloads a users configuration

With the above setup a user can manage their own customisations, but they can also include common groups.

/opt/kitchenplan/config
/opt/kitchenplan/user

_.yml_

groups:
    - config:group/name    // resolved against config repository
    - some/group/name      // resolved against user repository

config: would be replaced with the correct based directory for the config checkout.

A user would first be resolved against a user checkout then fallback to the config checkout.

With this setup, there would likely be a need manage potentially multiple cheffiles ( config + user ) and possibly Gemfile.

Commandline Arguments

I wonder if making the following options available to provision would be useful.

--user <username>.yml       // provision with user specified
--no-user <username>.yml    // provision with only defaults
--config some/config        // provision with config specified ( comma separated )

Proposed commandline arguments

> kitchenplan provision --no-user                       // provision with defaults only
> kitchenplan provision --no-user --config engineering  // provision with engineering group
> kitchenplan provision --user roderik                  // provision with roderik user

Examples

Error and fail After librarian-chef install --clean --quite

block in tsort_each': topological sort failed: ["applications", "dotfiles"]

Not sure whats going on here. but it happens on multiple machines.

To replicate:
sudo rm -rf /opt/kitchenplan

and then rerun the ruby -e "$(curl -fsSL https://raw.github.com/kitchenplan/kitchenplan/master/go)"

https://raw.github.com/kitchenplan/kitchenplan/master/go does not work

On a clean ML install with xcode and cli-tools installed

ruby -e "$(curl -fsSL https://raw.github.com/kitchenplan/kitchenplan/master/go)"
xcode-select: Error: unknown command option '-p'.

$ xcode-select --install
xcode-select: Error: unknown command option '--install'.

xcode-select: Report or change the path to the active
              Xcode installation for this machine.

Usage: xcode-select --print-path
           Prints the path of the active Xcode folder
   or: xcode-select --switch <xcode_path>
           Sets the path for the active Xcode folder
   or: xcode-select --version
           Prints the version of xcode-select

-e:23:in `run_cmd': xcode-select --install failed (RuntimeError)
    from -e:32

Kitchenplan on OSX Yosemity 10.10

This is how i got it to work, seems like the Ruby doesn't have libyaml

  • Install XCode 6 beta (manually)
  • Install CLT for 10.10 (manually)
  • Install Homebrew ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
  • Fix Homebrew: cd /System/Library/Frameworks/Ruby.framework/Versions && sudo ln -s 2.0 1.8
  • Install RVM and the latest Ruby: curl -L https://get.rvm.io | bash -s stable --autolibs=enabled --ruby

At this point Kitchenplan ran great. Didn't test all recipes though, just a minimal set for now

Feature Suggestion: Multiple Computers for a user

I have a desktop and laptop. For the most part there's a commonality. But things that come to mind:

  • different computer name
  • the ability to install different software (e.g. my MBP has music software installed for connecting to my MIDI controller and music editing).

How possible is tweaking things this way? How to determine? Perhaps a prompt if a given user has multiple computers? Or IP address?

Bootstrap fails on Mac OS Mavericks

On Mac OS Mavericks the bootstrap fails with the following error:

Installing json (1.7.7)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb 

mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h

Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/json-1.7.7 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/gems/json-1.7.7/ext/json/ext/generator/gem_make.out

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/ext/builder.rb:55:in run' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/ext/ext_conf_builder.rb:37:inblock in build'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/tempfile.rb:324:in open' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/ext/ext_conf_builder.rb:18:inbuild'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/installer.rb:678:in block (2 levels) in build_extensions' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/installer.rb:677:inchdir'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/installer.rb:677:in block in build_extensions' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/installer.rb:652:ineach'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/installer.rb:652:in build_extensions' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/installer.rb:218:ininstall'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/source/rubygems.rb:94:in block in install' /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/rubygems_integration.rb:96:inpreserve_paths'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/source/rubygems.rb:87:in install' /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/installer.rb:106:inblock in install_gem_from_spec'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/rubygems_integration.rb:128:in with_build_args' /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/installer.rb:105:ininstall_gem_from_spec'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/installer.rb:91:in block in run' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/forwardable.rb:171:ineach'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/forwardable.rb:171:in each' /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/installer.rb:90:inrun'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/installer.rb:14:in install' /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/cli.rb:247:ininstall'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/vendor/thor/task.rb:27:in run' /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/vendor/thor/invocation.rb:120:ininvoke_task'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/vendor/thor.rb:344:in dispatch' /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/vendor/thor/base.rb:434:instart'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/bin/bundle:20:in block in <top (required)>' /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/friendly_errors.rb:3:inwith_friendly_errors'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/bin/bundle:20:in <top (required)>' /usr/bin/bundle:23:inload'
/usr/bin/bundle:23:in <main>' An error occurred while installing json (1.7.7), and Bundler cannot continue. Make sure thatgem install json -v '1.7.7'succeeds before bundling. Bundler::InstallError: An error occurred while installing json (1.7.7), and Bundler cannot continue. Make sure thatgem install json -v '1.7.7'succeeds before bundling. /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/installer.rb:130:inrescue in install_gem_from_spec'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/installer.rb:101:in install_gem_from_spec' /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/installer.rb:91:inblock in run'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/installer.rb:90:in run' /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/installer.rb:14:ininstall'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/cli.rb:247:in install' /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/vendor/thor/task.rb:27:inrun'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/vendor/thor/invocation.rb:120:in invoke_task' /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/vendor/thor.rb:344:indispatch'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/vendor/thor/base.rb:434:in start' /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/bin/bundle:20:inblock in <top (required)>'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/lib/bundler/friendly_errors.rb:3:in with_friendly_errors' /Library/Ruby/Gems/2.0.0/gems/bundler-1.3.5/bin/bundle:20:in<top (required)>'
/usr/bin/bundle:23:in load' /usr/bin/bundle:23:in

'
There was a problem bootstrapping. Run using --debug for more information

Does opscode-cookbooks/sudo work with kitchenplan?

I'm not sure I'm using it properly, but it doesn't seem to work

---
 Cheffile                  | 1 +
 config/people/jenkins.yml | 6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/Cheffile b/Cheffile
index 591520e..450cb87 100644
--- a/Cheffile
+++ b/Cheffile
@@ -1,6 +1,7 @@
 site "http://community.opscode.com/api/v1"

 cookbook "dmg",                   :github => "thomasmeeus/dmg",         :ref => "package"
+cookbook "sudoer",                :github => "opscode-cookbooks/sudo"
 cookbook "apt"
 cookbook "apache2",               :github => "opscode-cookbooks/apache2"
 cookbook "percona",               :github => "thomasmeeus/chef-percona"
diff --git a/config/people/jenkins.yml b/config/people/jenkins.yml
index 6362d7b..f5835ab 100644
--- a/config/people/jenkins.yml
+++ b/config/people/jenkins.yml
@@ -4,6 +4,7 @@ groups:
     - smartie
 recipes:
     global:
+        - sudoer::default
     mac_os_x:
 #        - applications::1password
 #        - applications::dropbox
@@ -35,6 +36,11 @@ recipes:
         - osxdefaults::menu_add_battery_percentage
         - osxdefaults::menu_show_clock_with_date
 attributes:
+    authorization:
+        sudo:
+            users: jenkins
+            passwordless: true
+            include_sudoers_d: true
     git:
         name: OSX Builder
         email: [email protected]
-- 

Calling it:

/opt/kitchenplan](master)$ ./kitchenplan -d -c

chef log:

2013-12-11T06:13:32+01:00] DEBUG: STDERR: 
[2013-12-11T06:13:32+01:00] DEBUG: ---- End output of easy_install "MySQL-python==1.2.4" ----
[2013-12-11T06:13:32+01:00] DEBUG: Ran easy_install "MySQL-python==1.2.4" returned 0

    - install version 1.2.4 of package MySQL-python

Recipe: sudoer::default
[2013-12-11T06:13:32+01:00] INFO: Processing package[sudo] action install (sudoer::default line 22)
  * package[sudo] action install/usr/local

================================================================================
Error executing action `install` on resource 'package[sudo]'
================================================================================


FormulaUnavailableError
-----------------------
No available formula for sudo 


Cookbook Trace:
---------------
/opt/kitchenplan/cookbooks/applications/libraries/homebrew_package.rb:72:in `get_version_from_formula'
/opt/kitchenplan/cookbooks/applications/libraries/homebrew_package.rb:49:in `current_installed_version'
/opt/kitchenplan/cookbooks/applications/libraries/homebrew_package.rb:18:in `load_current_resource'


Resource Declaration:
---------------------
# In /opt/kitchenplan/cookbooks/sudoer/recipes/default.rb

 22: package 'sudo'
 23: 



Compiled Resource:
------------------
# Declared in /opt/kitchenplan/cookbooks/sudoer/recipes/default.rb:22:in `from_file'

package("sudo") do
  recipe_name "default"
  cookbook_name :sudoer
  package_name "sudo"
  retry_delay 2
  action :install
  retries 0
end



[2013-12-11T06:13:32+01:00] INFO: Running queued delayed notifications before re-raising exception
[2013-12-11T06:13:32+01:00] DEBUG: Re-raising exception: FormulaUnavailableError - No available formula for sudo 
/usr/local/Library/Homebrew/formulary.rb:54:in `klass'
  /usr/local/Library/Homebrew/formulary.rb:97:in `get_formula'
  /usr/local/Library/Homebrew/formulary.rb:182:in `factory'
  /usr/local/Library/Homebrew/formula.rb:443:in `factory'
  /opt/kitchenplan/cookbooks/applications/libraries/homebrew_package.rb:72:in `get_version_from_formula'
  /opt/kitchenplan/cookbooks/applications/libraries/homebrew_package.rb:49:in `current_installed_version'
  /opt/kitchenplan/cookbooks/applications/libraries/homebrew_package.rb:18:in `load_current_resource'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider.rb:97:in `run_action'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource.rb:625:in `run_action'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:49:in `run_action'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:81:in `converge'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:81:in `each'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:81:in `converge'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection.rb:98:in `execute_each_resource'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection.rb:96:in `execute_each_resource'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:80:in `converge'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:433:in `converge'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:500:in `do_run'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:199:in `run'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:193:in `fork'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:193:in `run'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application.rb:208:in `run_chef_client'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application/solo.rb:221:in `run_application'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application/solo.rb:213:in `loop'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application/solo.rb:213:in `run_application'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application.rb:66:in `run'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/chef-solo:25
  bin/chef-solo:16:in `load'
  bin/chef-solo:16
[2013-12-11T06:13:32+01:00] ERROR: Running exception handlers
[2013-12-11T06:13:32+01:00] ERROR: Exception handlers complete
[2013-12-11T06:13:32+01:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2013-12-11T06:13:32+01:00] DEBUG: FormulaUnavailableError: No available formula for sudo 
/usr/local/Library/Homebrew/formulary.rb:54:in `klass'
/usr/local/Library/Homebrew/formulary.rb:97:in `get_formula'
/usr/local/Library/Homebrew/formulary.rb:182:in `factory'
/usr/local/Library/Homebrew/formula.rb:443:in `factory'
/opt/kitchenplan/cookbooks/applications/libraries/homebrew_package.rb:72:in `get_version_from_formula'
/opt/kitchenplan/cookbooks/applications/libraries/homebrew_package.rb:49:in `current_installed_version'
/opt/kitchenplan/cookbooks/applications/libraries/homebrew_package.rb:18:in `load_current_resource'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider.rb:97:in `run_action'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource.rb:625:in `run_action'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:49:in `run_action'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:81:in `converge'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:81:in `each'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:81:in `converge'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection.rb:98:in `execute_each_resource'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection.rb:96:in `execute_each_resource'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:80:in `converge'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:433:in `converge'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:500:in `do_run'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:199:in `run'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:193:in `fork'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:193:in `run'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application.rb:208:in `run_chef_client'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application/solo.rb:221:in `run_application'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application/solo.rb:213:in `loop'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application/solo.rb:213:in `run_application'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application.rb:66:in `run'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/chef-solo:25
bin/chef-solo:16:in `load'
bin/chef-solo:16
Chef Client failed. 43 resources updated
[2013-12-11T06:13:32+01:00] ERROR: No available formula for sudo 
[2013-12-11T06:13:32+01:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
Failed during: /usr/bin/sudo bin/chef-solo --log_level debug -c solo.rb -j kitchenplan-attributes.json -o applications::create_var_chef_cache,applications::google-chrome,applications::firefox,applications::java,applications::bash-completion,dotfiles::bash_it,dotfiles::inputrc,applications::git,applications::wget,applications::pwgen,applications::xmlstarlet,applications::pv,applications::htop,dotfiles::gitconfig,applications::grunt-cli,applications::bower,applications::git-flow,applications::sass,applications::siege,applications::nodejs,applications::ssh_config,dotfiles::vim,applications::composer,dotfiles::kms,dotfiles::workspace,applications::postgresql,applications::psycopg2,applications::mysql,applications::mysql_python,applications::apache,sudoer::default

kitchenplan proivision error

I am getting the following error when running provision:

/Users/rkoberg/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- bundler/setup (LoadError)
    from /Users/rkoberg/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
    from vendor/bin/chef-solo:14:in `<main>'

Do I need to install ruby 1.9.1? Or is there some way to work around this?

Question: adding dot-files

... results in an error:

Chef::Exceptions::RecipeNotFound
--------------------------------
could not find recipe vimrc for cookbook dotfiles

Where should such a thing be placed / installed?

Uninstalling packages

After adding a homebrew cask application to my kitchenplan config, I wanted to uninstall it. I can do this manually using brew cask uninstall

Ideally I would like to remove the line from my config and re-run kitchenplan provision and for the omitted application to be removed.

Is it possible to do this, or with another command?

Could not find archive-tar-minitar-0.5.2 in any of the sources (Bundler::GemNotFound)

Not sure whether this is related to chef-rvm or kitchenplan, but it doesn't seem to work again after few days with no change.

[2013-12-19T15:58:05-08:00] INFO: Processing log[Performing RVM install with [curl -L https://get.rvm.io | bash  -s -- --version 1.24.8] (as root)] action write (rvm::system_install line 76)
[2013-12-19T15:58:05-08:00] INFO: Performing RVM install with [curl -L https://get.rvm.io | bash  -s -- --version 1.24.8] (as root)
  * log[Performing RVM install with [curl -L https://get.rvm.io | bash  -s -- --version 1.24.8] (as root)] action write

[2013-12-19T15:58:05-08:00] INFO: Processing execute[install system-wide RVM] action run (rvm::system_install line 78)
  * execute[install system-wide RVM] action runDownloading https://github.com/wayneeseguin/rvm/archive/1.24.8.tar.gz

Installing RVM to /usr/local/rvm/
Installation of RVM in /usr/local/rvm/ is almost complete:

  * First you need to add all users that will be using rvm to 'rvm' group,
    and logout - login again, anyone using rvm will be operating with `umask u=rwx,g=rwx,o=rx`.

  * To start using RVM you need to run `source /etc/profile.d/rvm.sh`
    in all your open shell windows, in rare cases you need to reopen all shell windows.

# OSX Builder,
#
#   Thank you for using RVM!
#   We sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne, Michal & team.

[2013-12-19T15:58:11-08:00] INFO: execute[install system-wide RVM] ran successfully

    - execute curl -L https://get.rvm.io | bash  -s -- --version 1.24.8

[2013-12-19T15:58:11-08:00] DEBUG: Skipping execute[upgrade system-wide RVM to none] due to not_if ruby block
Recipe: rvm::system
[2013-12-19T15:58:11-08:00] INFO: Processing rvm_ruby[1.9.3-p484] action install (rvm::system line 176)
[2013-12-19T15:58:11-08:00] DEBUG: Fetching canonical RVM string for: 1.9.3-p484 (system)
  * rvm_ruby[1.9.3-p484] action install[2013-12-19T15:58:11-08:00] DEBUG: Canonical RVM string is: 1.9.3-p484 => ruby-1.9.3-p484 (system)
[2013-12-19T15:58:11-08:00] DEBUG: RVM::Shell::ChefWrapper subprocess executing with environment of: [{}].
[2013-12-19T15:58:11-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [source '/Library/Ruby/Gems/1.8/gems/rvm-1.11.3.8/lib/rvm/shell/shell_wrapper.sh'; __rvm_show_command_epilog]
[2013-12-19T15:58:11-08:00] DEBUG: RVM::Shell::ChefWrapper executing: [rvm 'list' 'strings'; __rvm_show_command_epilog]
[2013-12-19T15:58:14-08:00] INFO: Building rvm_ruby[ruby-1.9.3-p484], this could take a while...
[2013-12-19T15:58:14-08:00] DEBUG: RVM::Shell::ChefWrapper subprocess executing with environment of: [{}].
[2013-12-19T15:58:14-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [source '/Library/Ruby/Gems/1.8/gems/rvm-1.11.3.8/lib/rvm/shell/shell_wrapper.sh'; __rvm_show_command_epilog]
[2013-12-19T15:58:14-08:00] DEBUG: RVM::Shell::ChefWrapper executing: [/usr/local/rvm/bin/rvm 'install' 'ruby-1.9.3-p484'; __rvm_show_command_epilog]
[2013-12-19T16:06:13-08:00] INFO: Installation of rvm_ruby[ruby-1.9.3-p484] was successful.
[2013-12-19T16:06:13-08:00] DEBUG: RVM::Shell::ChefWrapper subprocess executing with environment of: [{}].
[2013-12-19T16:06:13-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [source '/Library/Ruby/Gems/1.8/gems/rvm-1.11.3.8/lib/rvm/shell/shell_wrapper.sh'; __rvm_show_command_epilog]
[2013-12-19T16:06:13-08:00] DEBUG: RVM::Shell::ChefWrapper executing: [rvm 'use' 'ruby-1.9.3-p484'; __rvm_show_command_epilog]
[2013-12-19T16:06:16-08:00] DEBUG: RVM::Shell::ChefWrapper subprocess executing with environment of: [{}].
[2013-12-19T16:06:16-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [source '/Library/Ruby/Gems/1.8/gems/rvm-1.11.3.8/lib/rvm/shell/shell_wrapper.sh'; __rvm_show_command_epilog]
[2013-12-19T16:06:16-08:00] DEBUG: RVM::Shell::ChefWrapper executing: [rvm 'list' 'strings'; __rvm_show_command_epilog]
[2013-12-19T16:06:20-08:00] INFO: Importing initial gemsets for rvm_ruby[ruby-1.9.3-p484]
[2013-12-19T16:06:20-08:00] DEBUG: RVM::Shell::ChefWrapper subprocess executing with environment of: [{}].
[2013-12-19T16:06:20-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [source '/Library/Ruby/Gems/1.8/gems/rvm-1.11.3.8/lib/rvm/shell/shell_wrapper.sh'; __rvm_show_command_epilog]
[2013-12-19T16:06:20-08:00] DEBUG: RVM::Shell::ChefWrapper executing: [rvm 'gemset' 'initial'; __rvm_show_command_epilog]
[2013-12-19T16:06:41-08:00] DEBUG: Initial gemsets for rvm_ruby[ruby-1.9.3-p484] are installed
[2013-12-19T16:06:41-08:00] INFO: rvm_ruby[ruby-1.9.3-p484] build time was 8.44972958333333 minutes.


[2013-12-19T16:06:41-08:00] INFO: Processing rvm_default_ruby[1.9.3-p484] action create (rvm::system line 184)
[2013-12-19T16:06:41-08:00] DEBUG: RVM::Shell::ChefWrapper subprocess executing with environment of: [{}].
  * rvm_default_ruby[1.9.3-p484] action create[2013-12-19T16:06:41-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [source '/Library/Ruby/Gems/1.8/gems/rvm-1.11.3.8/lib/rvm/shell/shell_wrapper.sh'; __rvm_show_command_epilog]
[2013-12-19T16:06:41-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [export rvm_path='/usr/local/rvm'; __rvm_show_command_epilog]
[2013-12-19T16:06:41-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [source '/usr/local/rvm/scripts/rvm'; __rvm_show_command_epilog]
[2013-12-19T16:06:41-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [rvm 'use' 'default'; __rvm_show_command_epilog]
[2013-12-19T16:06:41-08:00] DEBUG: RVM::Shell::ChefWrapper executing: [rvm 'list' 'default' 'string'; __rvm_show_command_epilog]
[2013-12-19T16:06:45-08:00] DEBUG: RVM::Shell::ChefWrapper subprocess executing with environment of: [{}].
[2013-12-19T16:06:45-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [source '/Library/Ruby/Gems/1.8/gems/rvm-1.11.3.8/lib/rvm/shell/shell_wrapper.sh'; __rvm_show_command_epilog]
[2013-12-19T16:06:45-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [export rvm_path='/usr/local/rvm'; __rvm_show_command_epilog]
[2013-12-19T16:06:45-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [source '/usr/local/rvm/scripts/rvm'; __rvm_show_command_epilog]
[2013-12-19T16:06:45-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [rvm 'use' 'default'; __rvm_show_command_epilog]
[2013-12-19T16:06:45-08:00] DEBUG: RVM::Shell::ChefWrapper executing: [rvm 'list' 'strings'; __rvm_show_command_epilog]
[2013-12-19T16:06:49-08:00] INFO: Setting default ruby to rvm_ruby[ruby-1.9.3-p484]
[2013-12-19T16:06:49-08:00] DEBUG: RVM::Shell::ChefWrapper subprocess executing with environment of: [{}].
[2013-12-19T16:06:49-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [source '/Library/Ruby/Gems/1.8/gems/rvm-1.11.3.8/lib/rvm/shell/shell_wrapper.sh'; __rvm_show_command_epilog]
[2013-12-19T16:06:49-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [export rvm_path='/usr/local/rvm'; __rvm_show_command_epilog]
[2013-12-19T16:06:49-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [source '/usr/local/rvm/scripts/rvm'; __rvm_show_command_epilog]
[2013-12-19T16:06:49-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [rvm 'use' 'default'; __rvm_show_command_epilog]
[2013-12-19T16:06:49-08:00] DEBUG: RVM::Shell::ChefWrapper executing: [rvm 'use' 'ruby-1.9.3-p484' '--default'; __rvm_show_command_epilog]


[2013-12-19T16:06:53-08:00] INFO: Processing rvm_global_gem[bundler] action install (rvm::system line 190)
  * rvm_global_gem[bundler] action installRecipe: <Dynamically Defined Resource>
[2013-12-19T16:06:53-08:00] INFO: Processing execute[Add bundler to /usr/local/rvm/gemsets/global.gems] action run (/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb line 79)
  * execute[Add bundler to /usr/local/rvm/gemsets/global.gems] action run (skipped due to not_if)
[2013-12-19T16:06:53-08:00] DEBUG: Skipping execute[Add bundler to /usr/local/rvm/gemsets/global.gems] due to not_if command `grep -q "^bundler" "/usr/local/rvm/gemsets/global.gems"`
[2013-12-19T16:06:54-08:00] DEBUG: RVM::Shell::ChefWrapper subprocess executing with environment of: [{}].
[2013-12-19T16:06:54-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [source '/Library/Ruby/Gems/1.8/gems/rvm-1.11.3.8/lib/rvm/shell/shell_wrapper.sh'; __rvm_show_command_epilog]
[2013-12-19T16:06:54-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [export rvm_path='/usr/local/rvm'; __rvm_show_command_epilog]
[2013-12-19T16:06:54-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [source '/usr/local/rvm/scripts/rvm'; __rvm_show_command_epilog]
[2013-12-19T16:06:54-08:00] DEBUG: RVM::Shell::ChefWrapper silently executing: [rvm 'use' 'default'; __rvm_show_command_epilog]
[2013-12-19T16:06:54-08:00] DEBUG: RVM::Shell::ChefWrapper executing: [rvm 'list' 'strings'; __rvm_show_command_epilog]
[2013-12-19T16:06:57-08:00] INFO: Processing rvm_gem[bundler] action install (/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb line 48)
[2013-12-19T16:06:57-08:00] DEBUG: rvm_gem[bundler] using gem from running ruby environment
  * rvm_gem[bundler] action install
1.24.8

[2013-12-19T16:06:58-08:00] DEBUG: RVM version = 1.24.8 (system)

================================================================================
Error executing action `install` on resource 'rvm_gem[bundler]'
================================================================================


Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '1'
---- Begin output of bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" ----
STDOUT: 
STDERR: /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find archive-tar-minitar-0.5.2 in any of the sources (Bundler::GemNotFound)
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `map!'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `materialize'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:114:in `specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:159:in `specs_for'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:148:in `requested_specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/environment.rb:18:in `requested_specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:13:in `setup'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/setup.rb:17:in `<top (required)>'
    from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
---- End output of bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" ----
Ran bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" returned 1


Cookbook Trace:
---------------
/opt/kitchenplan/cookbooks/rvm/libraries/rvm_rubygems_package.rb:64:in `gem_paths'
/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:57:in `gem_package_wrapper'
/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:35:in `class_from_file'
/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:34:in `each'
/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:34:in `class_from_file'


Resource Declaration:
---------------------
# In /opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb

 48:   g = rvm_gem new_resource.package_name do
 49:     ruby_string ruby_global_gemset
 50:     source      new_resource.source if new_resource.source
 51:     options     new_resource.options if new_resource.options
 52:     version     new_resource.version if new_resource.version
 53:     gem_binary  new_resource.gem_binary if new_resource.gem_binary
 54:     user        new_resource.user
 55:     action      :nothing
 56:   end
 57:   g.run_action(exec_action)



Compiled Resource:
------------------
# Declared in /opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:48:in `gem_package_wrapper'

rvm_gem("bundler") do
  cookbook_name :rvm
  ruby_string "ruby-1.9.3-p484@global"
  package_name "bundler"
  provider Chef::Provider::Package::RVMRubygems
  gem_binary "gem"
  retry_delay 2
  action [:nothing]
  retries 0
end




================================================================================
Error executing action `install` on resource 'rvm_global_gem[bundler]'
================================================================================


Mixlib::ShellOut::ShellCommandFailed
------------------------------------
rvm_gem[bundler] (/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb line 48) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" ----
STDOUT: 
STDERR: /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find archive-tar-minitar-0.5.2 in any of the sources (Bundler::GemNotFound)
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `map!'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `materialize'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:114:in `specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:159:in `specs_for'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:148:in `requested_specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/environment.rb:18:in `requested_specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:13:in `setup'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/setup.rb:17:in `<top (required)>'
    from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
---- End output of bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" ----
Ran bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" returned 1


Cookbook Trace:
---------------
/opt/kitchenplan/cookbooks/rvm/libraries/rvm_rubygems_package.rb:64:in `gem_paths'
/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:57:in `gem_package_wrapper'
/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:35:in `class_from_file'
/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:34:in `each'
/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:34:in `class_from_file'


Resource Declaration:
---------------------
# In /opt/kitchenplan/cookbooks/rvm/libraries/chef_rvm_recipe_helpers.rb

190:           rvm_global_gem gem[:name] do
191:             user      opts[:user]
192:             [:version, :action, :options, :source].each do |attr|
193:               send(attr, gem[attr]) if gem[attr]
194:             end
195:           end
196:         end



Compiled Resource:
------------------
# Declared in /opt/kitchenplan/cookbooks/rvm/libraries/chef_rvm_recipe_helpers.rb:190:in `install_rubies'

rvm_global_gem("bundler") do
  cookbook_name :rvm
  package_name "bundler"
  recipe_name "system"
  retry_delay 2
  action :install
  retries 0
end



[2013-12-19T16:06:59-08:00] INFO: Running queued delayed notifications before re-raising exception
[2013-12-19T16:06:59-08:00] DEBUG: Re-raising exception: Mixlib::ShellOut::ShellCommandFailed - rvm_global_gem[bundler] (rvm::system line 190) had an error: Mixlib::ShellOut::ShellCommandFailed: rvm_gem[bundler] (/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb line 48) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" ----
STDOUT: 
STDERR: /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find archive-tar-minitar-0.5.2 in any of the sources (Bundler::GemNotFound)
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `map!'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `materialize'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:114:in `specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:159:in `specs_for'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:148:in `requested_specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/environment.rb:18:in `requested_specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:13:in `setup'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/setup.rb:17:in `<top (required)>'
    from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
---- End output of bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" ----
Ran bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" returned 1
/Library/Ruby/Gems/1.8/gems/mixlib-shellout-1.3.0/lib/mixlib/shellout.rb:253:in `invalid!'
  /Library/Ruby/Gems/1.8/gems/mixlib-shellout-1.3.0/lib/mixlib/shellout.rb:239:in `error!'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/mixin/shell_out.rb:45:in `shell_out!'
  /opt/kitchenplan/cookbooks/rvm/libraries/rvm_rubygems_package.rb:64:in `gem_paths'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider/package/rubygems.rb:297:in `gem_source_index'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider/package/rubygems.rb:98:in `installed_versions'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider/package/rubygems.rb:454:in `matching_installed_versions'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider/package/rubygems.rb:437:in `current_version'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider/package/rubygems.rb:470:in `load_current_resource'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider.rb:97:in `run_action'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource.rb:625:in `run_action'
  /opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:57:in `gem_package_wrapper'
  /opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:35:in `class_from_file'
  /opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:34:in `each'
  /opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:34:in `class_from_file'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider/lwrp_base.rb:138:in `instance_eval'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider/lwrp_base.rb:138:in `action_install'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider.rb:118:in `send'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider.rb:118:in `run_action'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource.rb:625:in `run_action'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:49:in `run_action'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:81:in `converge'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:81:in `each'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:81:in `converge'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection.rb:98:in `execute_each_resource'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection.rb:96:in `execute_each_resource'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:80:in `converge'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:433:in `converge'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:500:in `do_run'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:199:in `run'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:193:in `fork'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:193:in `run'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application.rb:208:in `run_chef_client'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application/solo.rb:221:in `run_application'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application/solo.rb:213:in `loop'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application/solo.rb:213:in `run_application'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application.rb:66:in `run'
  /Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/chef-solo:25
  bin/chef-solo:16:in `load'
  bin/chef-solo:16
[2013-12-19T16:06:59-08:00] ERROR: Running exception handlers
[2013-12-19T16:06:59-08:00] ERROR: Exception handlers complete
[2013-12-19T16:06:59-08:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2013-12-19T16:06:59-08:00] DEBUG: Mixlib::ShellOut::ShellCommandFailed: rvm_global_gem[bundler] (rvm::system line 190) had an error: Mixlib::ShellOut::ShellCommandFailed: rvm_gem[bundler] (/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb line 48) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" ----
STDOUT: 
STDERR: /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find archive-tar-minitar-0.5.2 in any of the sources (Bundler::GemNotFound)
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `map!'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `materialize'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:114:in `specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:159:in `specs_for'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:148:in `requested_specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/environment.rb:18:in `requested_specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:13:in `setup'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/setup.rb:17:in `<top (required)>'
    from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
---- End output of bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" ----
Ran bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" returned 1
/Library/Ruby/Gems/1.8/gems/mixlib-shellout-1.3.0/lib/mixlib/shellout.rb:253:in `invalid!'
/Library/Ruby/Gems/1.8/gems/mixlib-shellout-1.3.0/lib/mixlib/shellout.rb:239:in `error!'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/mixin/shell_out.rb:45:in `shell_out!'
/opt/kitchenplan/cookbooks/rvm/libraries/rvm_rubygems_package.rb:64:in `gem_paths'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider/package/rubygems.rb:297:in `gem_source_index'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider/package/rubygems.rb:98:in `installed_versions'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider/package/rubygems.rb:454:in `matching_installed_versions'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider/package/rubygems.rb:437:in `current_version'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider/package/rubygems.rb:470:in `load_current_resource'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider.rb:97:in `run_action'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource.rb:625:in `run_action'
/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:57:in `gem_package_wrapper'
/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:35:in `class_from_file'
/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:34:in `each'
/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb:34:in `class_from_file'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider/lwrp_base.rb:138:in `instance_eval'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider/lwrp_base.rb:138:in `action_install'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider.rb:118:in `send'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/provider.rb:118:in `run_action'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource.rb:625:in `run_action'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:49:in `run_action'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:81:in `converge'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:81:in `each'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:81:in `converge'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection.rb:98:in `execute_each_resource'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/resource_collection.rb:96:in `execute_each_resource'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/runner.rb:80:in `converge'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:433:in `converge'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:500:in `do_run'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:199:in `run'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:193:in `fork'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/client.rb:193:in `run'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application.rb:208:in `run_chef_client'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application/solo.rb:221:in `run_application'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application/solo.rb:213:in `loop'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application/solo.rb:213:in `run_application'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/../lib/chef/application.rb:66:in `run'
/Library/Ruby/Gems/1.8/gems/chef-11.8.2/bin/chef-solo:25
bin/chef-solo:16:in `load'
bin/chef-solo:16
Chef Client failed. 51 resources updated
[2013-12-19T16:06:59-08:00] ERROR: rvm_global_gem[bundler] (rvm::system line 190) had an error: Mixlib::ShellOut::ShellCommandFailed: rvm_gem[bundler] (/opt/kitchenplan/cookbooks/rvm/providers/global_gem.rb line 48) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" ----
STDOUT: 
STDERR: /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find archive-tar-minitar-0.5.2 in any of the sources (Bundler::GemNotFound)
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `map!'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `materialize'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:114:in `specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:159:in `specs_for'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/definition.rb:148:in `requested_specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/environment.rb:18:in `requested_specs'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:13:in `setup'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.3.5/lib/bundler/setup.rb:17:in `<top (required)>'
    from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/rvm/rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
---- End output of bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" ----
Ran bash -c "source /etc/profile.d/rvm.sh && rvm ruby-1.9.3-p484@global do gem env gempath" returned 1
[2013-12-19T16:06:59-08:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
Failed during: /usr/bin/sudo bin/chef-solo --log_level debug -c solo.rb -j kitchenplan-attributes.json -o applications::create_var_chef_cache,applications::google-chrome,applications::firefox,applications::java,dotfiles::kms,dotfiles::workspace,applications::postgresql,applications::psycopg2,applications::mysql,applications::mysql_python,applications::apache,applications::git,applications::wget,applications::pwgen,applications::xmlstarlet,applications::pv,applications::htop,dotfiles::gitconfig,applications::grunt-cli,applications::bower,applications::git-flow,applications::sass,applications::siege,applications::nodejs,applications::ssh_config,dotfiles::vim,applications::composer,applications::tmux,applications::rvm,applications::bash-completion,dotfiles::bash_it,dotfiles::inputrc
Failed during: ./kitchenplan -d

kitchenplan provision No such file or directory - /opt/kitchenplan/Cheffile (Errno::ENOENT)

osx 10.9.2

When I run:

$ ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future kitchenplan provision

I get:

-> Fetch the chef cookbooks
         run  vendor/bin/librarian-chef install --clean --quiet --path=vendor/cookbooks from "/opt/kitchenplan"
/opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/dsl/receiver.rb:30:in `read': No such file or directory - /opt/kitchenplan/Cheffile (Errno::ENOENT)
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/dsl/receiver.rb:30:in `run'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/dsl.rb:79:in `block in run'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/dsl.rb:73:in `tap'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/dsl.rb:73:in `run'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/dsl.rb:17:in `run'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/environment.rb:148:in `dsl'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/specfile.rb:15:in `read'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/action/resolve.rb:13:in `run'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/cli.rb:169:in `resolve!'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-chef-0.0.2/lib/librarian/chef/cli.rb:41:in `install'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/cli.rb:26:in `block (2 levels) in bin!'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/cli.rb:31:in `returning_status'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/cli.rb:26:in `block in bin!'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/cli.rb:47:in `with_environment'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-0.1.2/lib/librarian/cli.rb:26:in `bin!'
    from /opt/kitchenplan/vendor/bundle/ruby/2.0.0/gems/librarian-chef-0.0.2/bin/librarian-chef:7:in `<top (required)>'
    from vendor/bin/librarian-chef:16:in `load'
    from vendor/bin/librarian-chef:16:in `<main>'

Could not find json-1.7.7 for ruby-2.0.0

STDERR: /Users/jenkins/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `materialize': Could not find json-1.7.7 in any of the sources (Bundler::GemNotFound)

[Support] How would I add in Cask font support?

Firstly, thanks for the kitchenplan project, and apologies for adding a question as an issue. I don't really know where else to ask.

How would I go about adding font support to Cask? To do this manually, I'd enter the following in the Terminal.

$ brew tap caskroom/fonts
$ brew cask install font-inconsolata

It would be pretty neat to have the following at the bottom of my accounts .yml file:

attributes
        cask_fonts:
            - font-inconsolata

Would I need to create a Cookbook for this? I tried to create my own Cookbook, but when I try and use it in my Cheffile and run kitchenplan provision but I get an error:

-> Fetch the chef cookbooks
         run  vendor/bin/librarian-chef update   from "."
Could not get http://community.opscode.com/api/v1/cookbooks/pivotal_workstation because 404 Not Found!

syntax error, unexpected ':', expecting ')'

I'm on Mountain Lion (system ruby is 1.8.7), does it mean I have to install ruby 1.9.3+ via RVM or Homebrew before I use this script?

Compiling Cookbooks...

================================================================================
Recipe Compile Error in /opt/kitchenplan/cookbooks/yum/providers/repository.rb
================================================================================


SyntaxError
-----------
compile error
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:108: syntax error, unexpected ':', expecting ')'
      repo_name: new_resource.repo_name,
                ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:109: syntax error, unexpected ':', expecting '='
      description: new_resource.description,
                  ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:110: syntax error, unexpected ':', expecting '='
      url: new_resource.url,
          ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:111: syntax error, unexpected ':', expecting '='
      mirrorlist: new_resource.mirrorlist,
                 ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:112: syntax error, unexpected ':', expecting '='
      key: new_resource.key,
          ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:113: syntax error, unexpected ':', expecting '='
      enabled: new_resource.enabled,
              ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:114: syntax error, unexpected ':', expecting '='
      type: new_resource.type,
           ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:115: syntax error, unexpected ':', expecting '='
      failovermethod: new_resource.failovermethod,
                     ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:116: syntax error, unexpected ':', expecting '='
      bootstrapurl: new_resource.bootstrapurl,
                   ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:117: syntax error, unexpected ':', expecting '='
      includepkgs: new_resource.includepkgs,
                  ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:118: syntax error, unexpected ':', expecting '='
      exclude: new_resource.exclude,
              ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:119: syntax error, unexpected ':', expecting '='
      priority: new_resource.priority,
               ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:120: syntax error, unexpected ':', expecting '='
      metadata_expire: new_resource.metadata_expire,
                      ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:121: syntax error, unexpected ':', expecting '='
      type: new_resource.type,
           ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:122: syntax error, unexpected ':', expecting '='
      proxy: new_resource.proxy,
            ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:123: syntax error, unexpected ':', expecting '='
      proxy_username: new_resource.proxy_username,
                     ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:124: syntax error, unexpected ':', expecting '='
      proxy_password: new_resource.proxy_password
                     ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:125: syntax error, unexpected ')', expecting kEND


Cookbook Trace:
---------------
  /opt/kitchenplan/cookbooks/yum/providers/repository.rb:131:in `class_from_file'


Relevant File Content:
----------------------
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:

124:        proxy_password: new_resource.proxy_password
125:        )
126:      if new_resource.make_cache
127:        notifies :run, "execute[yum-makecache-#{new_resource.repo_name}]", :immediately
128:        notifies :create, "ruby_block[reload-internal-yum-cache-for-#{new_resource.repo_name}]", :immediately
129:      end
130:    end
131>> end
132:  


[2013-12-05T18:09:53-08:00] ERROR: Running exception handlers
[2013-12-05T18:09:53-08:00] ERROR: Exception handlers complete
[2013-12-05T18:09:53-08:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
Chef Client failed. 0 resources updated
[2013-12-05T18:09:53-08:00] ERROR: compile error
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:108: syntax error, unexpected ':', expecting ')'
      repo_name: new_resource.repo_name,
                ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:109: syntax error, unexpected ':', expecting '='
      description: new_resource.description,
                  ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:110: syntax error, unexpected ':', expecting '='
      url: new_resource.url,
          ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:111: syntax error, unexpected ':', expecting '='
      mirrorlist: new_resource.mirrorlist,
                 ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:112: syntax error, unexpected ':', expecting '='
      key: new_resource.key,
          ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:113: syntax error, unexpected ':', expecting '='
      enabled: new_resource.enabled,
              ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:114: syntax error, unexpected ':', expecting '='
      type: new_resource.type,
           ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:115: syntax error, unexpected ':', expecting '='
      failovermethod: new_resource.failovermethod,
                     ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:116: syntax error, unexpected ':', expecting '='
      bootstrapurl: new_resource.bootstrapurl,
                   ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:117: syntax error, unexpected ':', expecting '='
      includepkgs: new_resource.includepkgs,
                  ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:118: syntax error, unexpected ':', expecting '='
      exclude: new_resource.exclude,
              ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:119: syntax error, unexpected ':', expecting '='
      priority: new_resource.priority,
               ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:120: syntax error, unexpected ':', expecting '='
      metadata_expire: new_resource.metadata_expire,
                      ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:121: syntax error, unexpected ':', expecting '='
      type: new_resource.type,
           ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:122: syntax error, unexpected ':', expecting '='
      proxy: new_resource.proxy,
            ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:123: syntax error, unexpected ':', expecting '='
      proxy_username: new_resource.proxy_username,
                     ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:124: syntax error, unexpected ':', expecting '='
      proxy_password: new_resource.proxy_password
                     ^
/opt/kitchenplan/cookbooks/yum/providers/repository.rb:125: syntax error, unexpected ')', expecting kEND
[2013-12-05T18:09:53-08:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
There was a problem running chef. Run using --debug for more information
./go:23:in `run_cmd': ./kitchenplan failed (RuntimeError)
    from ./go:45

Can't use chef-rbenv and chef-rvm cookbooks if Homebrewalt is also used

The example Cheffile says:

# If you want to use either rvm or rbenv, uncomment the relevant line:
#
# cookbook "rvm",                   :github => "fnichol/chef-rvm",                :ref => "26ad5c043c70ea98855a049fbbacb7ffc5ad73e3"
# cookbook "rbenv",                 :github => "fnichol/chef-rbenv",              :ref => "9afb4e5da2e6212504a12de3bbbd410cd96100f6"
#
# Then, add one of the following to your Kitchenplan config file
#   - rvm::system
#   - rbenv::system

This isn't going to work because both cookbooks check for the Homebrew package provider as class Chef::Provider::Package::Homebrew, and Kitchenplan is using Homebrewalt.

You would probably prefer to keep the Homebrewalt class name, in which case it's better to just remove any mention of fnichol's cookbooks, as nice as it would be to be able to use them.

rvm ruby install is fubar

Apparently ruby 1.9.3 is no longer installed (and kstrano fails to install as well due to this).

To fix this I had to run rvm --autolibs=4 requirements 1.9.3 first, followed by rvm install 1.9.3.

See : rvm/rvm#1715

What happened to 'go' ?

That 'go' script really tied the room together, man. But it looks like it was removed back in fb6c3d8.

Here's why I miss it:

I wanted Kitchenplan to work on Linux and Windows. In order to do that, I can't assume that a system Ruby will be present. A 'go' script would therefore have to be written in Bash or Windows Batch / Powershell in order to be cross-platform. I took care of that.

Also refactored the kitchenplan script, not into Thor but into its own Ruby application library. This was actually a lot of work. "go/go.bat" is responsible for installing chef-omnibus and bundler, which in turn installs enough Ruby and gems for the Kitchenplan application to function properly. It really seems to me that "go" is necessary to do that initial platform bootstrap unless you're only dealing with OS X. Am I missing something?

Is platform-abstraction code still of value/interest to the project? I'm not quite sure how we'd go about reconciling the divergent codebases - I'm trying to rebase my contribution branch onto master and it's turning into a big gnarly mess very quickly.

We're using this rewritten version internally with a few teams and it's working very well, though most of them are on OS X. (We have a chicken-and-egg problem with Windows workstation cookbooks - it's hard to get going on Windows, so no one writes cookbooks for it, but writing cookbooks for the platform would make it easier to get going...)

P.S. I also abstracted cookbook dependency resolution to allow users to use Berkshelf instead of Librarian. I've been planning to add in an HTTP tarball resolver if/once I can get the codebases merged successfully...

P.P.S. I can't just run my branch through Travis until I get legal approval to put the code up on GitHub, even in a private repo. That approval hasn't come through yet, but I think it's pretty close...

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.