Git Product home page Git Product logo

chef-dk's Introduction

ChefDK

Build Status Docker Stars Docker Pulls

Umbrella Project: Chef Workstation

WARNING

ChefDK is now EOL and will receive no further updates. It has been replaced with Chef Workstation. Download Chef Workstation for the latest features and tools.

ChefDK brings Chef Infra Client and the development tools developed by the Chef Community together and acts as the consistent interface to this awesomeness. This awesomeness is composed of:

This repository contains the code for the chef command. The full package is built with omnibus. Project and component build definitions are in the omnibus directory in this repository.

Installation

You can get the latest release of ChefDK from the downloads page.

On macOS, you can also use homebrew-cask to brew cask install chef/chef/chefdk.

Once you install the package, the chef-client suite, berks, kitchen, and this application (chef) will be symlinked into your system bin directory, ready to use.

Pre-release Candidates

The following commands will download the latest ChefDK package from the current channel. The current channel holds builds that have passed testing and are candidates for release. More information about flags supported by install.sh available here: https://docs.chef.io/api_omnitruck.html

Linux and macOS

In a terminal, run:

curl https://omnitruck.chef.io/install.sh | sudo bash -s -- -c current -P chefdk

To download a specific version, append the -v flag. EG, -v 0.9.0.

Windows

Open up a Powershell command prompt as Administrator and run:

. { iwr -useb https://omnitruck.chef.io/install.ps1 } | iex; install -channel current -project chefdk

To download a specific version, append the -version flag. EG, -version 0.9.0.

Usage

For help with Berkshelf, Test Kitchen, ChefSpec, [Foodcritic][], Delivery CLI or Push Jobs Client, visit those projects' homepages for documentation and guides. For help with chef-client and knife, visit the Chef documentation and Learn Chef.

The chef Command

Our goal is for chef to become a workflow tool that builds on the ideas of Berkshelf to provide an awesome experience that encourages quick iteration and testing (and makes those things easy) and provides a way to easily, reliably, and repeatably roll out new automation code to your infrastructure.

While we've got a long way to go before we reach that goal we do have some helpful bits of functionality already included in the chef command:

chef generate

The generate subcommand generates skeleton Chef Infra code layouts so you can skip repetitive boilerplate and get down to automating your infrastructure quickly. Unlike other generators, it only generates the minimum required files when creating a cookbook so you can focus on the task at hand without getting overwhelmed by stuff you don't need.

The following generators are built-in:

  • chef generate cookbook Creates a single cookbook.
  • chef generate recipe Creates a new recipe file in an existing cookbook.
  • chef generate attribute Creates a new attributes file in an existing cookbook.
  • chef generate template Creates a new template file in an existing cookbook. Use the -s SOURCE option to copy a source file's content to populate the template.
  • chef generate file Creates a new cookbook file in an existing cookbook. Supports the -s SOURCE option similar to template.

The chef generate command also accepts additional --generator-arg key=value pairs that can be used to supply ad-hoc data to a generator cookbook. For example, you might specify --generator-arg database=mysql and then only write a template for recipes/mysql.rb if context.database == 'mysql'.

chef gem

chef gem is a wrapper command that manages installation and updating of rubygems for the Ruby installation embedded in the ChefDK package. This allows you to install knife plugins, Test Kitchen drivers, and other Ruby applications that are not packaged with ChefDK.

Gems are installed to a .chefdk directory in your home directory; any executables included with a gem you install will be created in ~/.chefdk/gem/ruby/2.1.0/bin. You can run these executables with chef exec, or use chef shell-init to add ChefDK's paths to your environment. Those commands are documented below.

chef exec

chef exec <command> runs any arbitrary shell command with the PATH environment variable and the ruby environment variables (GEM_HOME, GEM_PATH, etc.) setup to point at the embedded ChefDK omnibus environment.

chef shell-init

chef shell-init SHELL_NAME emits shell commands that modify your environment to make ChefDK your primary ruby. It supports bash, zsh, fish and PowerShell (posh). For more information to help you decide if this is desirable and instructions, see "Using ChefDK as Your Primary Development Environment" below.

chef install

chef install reads a Policyfile.rb document, which contains a run_list and optional cookbook version constraints, finds a set of cookbooks that provide the desired recipes and meet dependency constraints, and emits a Policyfile.lock.json describing the expanded run list and locked cookbook set. The Policyfile.lock.json can be used to install the cookbooks on another machine. The policy lock can be uploaded to a Chef Infra Server (via the chef push command) to apply the expanded run list and locked cookbook set to nodes in your infrastructure. See the POLICYFILE_README.md for further details.

chef push

chef push POLICY_GROUP uploads a Policyfile.lock.json along with the cookbooks it references to a Chef Infra Server. The policy lock is applied to a POLICY_GROUP, which is a set of nodes that share the same run list and cookbook set. This command operates in compatibility mode and has the same caveats as chef install. See the POLICYFILE_README.md for further details.

chef update

chef update updates a Policyfile.lock.json with the latest cookbooks from upstream sources. It supports an --attributes flag which will cause only attributes from the Policyfile.rb to be updated.

chef diff

chef diff shows an itemized diff between Policyfile locks. It can compare Policyfile locks from local disk, git, and/or the Chef Infra Server, based on the options given.

chef verify

chef verify tests the embedded applications. By default it runs a quick "smoke test" to verify that the embedded applications are installed correctly and can run basic commands. As an end user this is probably all you'll ever need, but verify can also optionally run unit and integration tests by supplying the --unit and --integration flags, respectively.

You can also focus on a specific suite of tests by passing it as an argument. For example chef verify git will only run the smoke tests for the git suite.

WARNING: The integration tests will do dangerous things like start HTTP servers with access to your filesystem and even create users and groups if run with sufficient privileges. The tests may also be sensitive to your machine's configuration. If you choose to run these, we recommend to only run them on dedicated, isolated hosts (we do this in our build cluster to verify each build).

Using ChefDK as Your Primary Development Environment

By default, ChefDK only adds a few select applications to your PATH and packages them in such a way that they are isolated from any other Ruby development tools you have on your system. If you're happily using your system ruby, rvm, rbenv, chruby or any other development environment, you can continue to do so. Just ensure that the ChefDK provided applications appear first in your PATH before any gem-installed versions and you're good to go.

If you'd like to use ChefDK as your primary Ruby/Chef Infra development environment, however, you can do so by initializing your shell with ChefDK's environment.

To try it temporarily, in a new terminal session, run:

eval "$(chef shell-init SHELL_NAME)"

where SHELL_NAME is the name of your shell (usually bash, but zsh is also common). This modifies your PATH and GEM_* environment variables to include ChefDK's paths (run without the eval to see the generated code). Now your default ruby and associated tools will be the ones from ChefDK:

which ruby
# => /opt/chefdk/embedded/bin/ruby

To add ChefDK to your shell's environment permanently, add the initialization step to your shell's profile:

echo 'eval "$(chef shell-init SHELL_NAME)"' >> ~/.YOUR_SHELL_PROFILE

Where YOUR_SHELL_PROFILE is ~/.bash_profile for most bash users, ~/.zshrc for zsh, and ~/.bashrc on Ubuntu.

Powershell

You can use chef shell-init with PowerShell on Windows.

To try it in your current session:

chef shell-init powershell | Invoke-Expression

To enable it permanently:

"chef shell-init powershell | Invoke-Expression" >> $PROFILE

Fish

chef shell-init also supports fish.

To try it:

eval (chef shell-init fish)

To permanently enable:

echo 'eval (chef shell-init SHELL_NAME)' >> ~/.config/fish/config.fish

Uninstallation Instructions

macOS

You can uninstall ChefDK on Mac using the below commands.

First, remove the main package files:

# Remove the installed files
sudo rm -rf /opt/chefdk

# Remove the system installation entry
sudo pkgutil --forget com.getchef.pkg.chefdk

Next, remove the symlinks which the ChefDK installs:

# Symlinks are in /usr/local/bin
ls -la /usr/local/bin | egrep '/opt/chefdk' | awk '{ print $9 }' | sudo xargs -I % rm -f /usr/local/bin/%

Windows

You can use Add / Remove Programs on Windows to remove the Chef Development Kit from your system.

RHEL

You can use rpm to uninstall ChefDK on RHEL based systems:

rpm -qa *chefdk*
yum remove <package>
rm -rf /opt/chefdk
rm -rf ~/.chefdk

Ubuntu

You can use dpkg to uninstall ChefDK on Ubuntu based systems:

dpkg --list | grep chefdk # or dpkg --status chefdk

# Purge chefdk from the system.
# see man dkpg for details
dpkg -P chefdk

Contributing

For information on contributing to this project see https://github.com/chef/chef/blob/master/CONTRIBUTING.md

For ChefDK Developers

See the Development Guide for how to get started with development on the ChefDK itself, as well as details on how dependencies, packaging, and building works.


chef-dk's People

Contributors

adamhjk avatar adamleff avatar btm avatar charlesjohnson avatar chef-ci avatar chef-delivery avatar chefsalim avatar coderanger avatar danielsdeleo avatar dependabot-preview[bot] avatar jaym avatar jkeiser avatar jonlives avatar jonsmorrow avatar lamont-granquist avatar marcparadise avatar mcquin avatar mwrock avatar prajaktapurohit avatar robbkidd avatar schisamo avatar scotthain avatar sethvargo avatar smith avatar tas50 avatar tduffield avatar thommay avatar tyler-ball avatar tylercloke avatar yzl 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  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

chef-dk's Issues

Support chef-dk on Linux Debian Wheezy (aka Debian 7.x)

After installing chefdk on Debian Wheezy from Ubuntu packages, I got the following exception

$> sudo dpkg -i chefdk_0.1.0-1_amd64.deb
$> berks 
/opt/chefdk/embedded/bin/ruby: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /opt/chefdk/embedded/lib/libruby.so.2.1)
/opt/chefdk/embedded/bin/ruby: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found (required by /opt/chefdk/embedded/lib/libruby.so.2.1)

I think it might not be too complicated to support Debian Wheezy since you already provide Ubuntu packages (AFAIK, it will only need a full recompilation of package from source).

Collect the low hanging fruits in order to reduce the package size of Chef DK

Currently there are some low hanging fruits such as unnecessary pkg directories that go into Chef DK which increase the download size.

In order to reduce the package size of Chef DK we would like to collect these low hanging fruits.

PS: The code to fix this is not in this repo however this is where we are keeping track of Chef DK bugs hence capturing the issue here.

/cc: @opscode/client-eng

default recipe in generated kitchen.yml file does not match name of default cookbook

When chef generate app is run, a collection of files and folders is generated, including a default cookbook and a default kitchen.yml file. Currently, the kitchen.yml file is generated with a default recipe of recipe[bar::default]. The name of the cookbook in this setting should match the name of the generated cookbook. For example, run cookbook generate app foo should generate a kitchen.yml file with recipe[foo::default].

run as a normal user, chef gem install should install gems to a writable location

It would be nice if, as a normal user, I could install gems for Chef without requiring root access. This is of course supported by RubyGems itself, but apparently not with chef gem.

Attempting to install a "Chef Gem" requires root access because it attempts to write to /opt.

% chef gem install knife-ec2
Fetching: formatador-0.2.4.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /opt/chefdk/embedded/lib/ruby/gems/2.1.0 directory.

Setting $GEM_HOME doesn't help, unfortunately.

% GEM_HOME=/Users/jtimberman/.gem/ruby/2.1.0 chef gem install knife-ec2
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /opt/chefdk/embedded/lib/ruby/gems/2.1.0 directory.

My Chef Gem Environment:

% chef gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.1
  - RUBY VERSION: 2.1.1 (2014-02-24 patchlevel 76) [x86_64-darwin13.0]
  - INSTALLATION DIRECTORY: /opt/chefdk/embedded/lib/ruby/gems/2.1.0
  - RUBY EXECUTABLE: /opt/chefdk/embedded/bin/ruby
  - EXECUTABLE DIRECTORY: /opt/chefdk/embedded/bin
  - SPEC CACHE DIRECTORY: /Users/jtimberman/.gem/specs
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-13
  - GEM PATHS:
     - /opt/chefdk/embedded/lib/ruby/gems/2.1.0
     - /Users/jtimberman/.gem/ruby/2.1.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - :sources => ["http://rubygems.org/"]
     - "gem" => "--no-rdoc --no-ri"
     - :benchmark => false
  - REMOTE SOURCES:
     - http://rubygems.org/
  - SHELL PATH:
     - /usr/local/bin
     - /usr/local/sbin
     - /bin
     - /sbin
     - /usr/bin
     - /usr/sbin
     - /usr/X11R6/bin
     - /Users/jtimberman/bin

chef-dk 0.1.0-1 defaults to attempting to download nonexistent chef 11.14.0-alpha-1 during bootstrap

The version of chef distributed with chefdk 0.1.0-1 (ubuntu) is Chef 11.14.0-alpha-1. As result this defaults to attempting to download and install 11.14.0-alpha-1 when bootstrapping a new node. This version of chef no longer appears to be available for download which results int the following error:

example-host Installing Chef Client...
example-host --2014-07-09 11:56:48--  https://www.opscode.com/chef/install.sh
example-host Resolving www.opscode.com (www.opscode.com)... 184.106.28.91
example-host Connecting to www.opscode.com (www.opscode.com)|184.106.28.91|:443... connected.
example-host HTTP request sent, awaiting response... 200 OK
example-host Length: 15934 (16K) [application/x-sh]
example-host Saving to: `STDOUT'
example-host·
100%[======================================>] 15,934      --.-K/s   in 0s······
example-host·
example-host 2014-07-09 11:56:48 (234 MB/s) - written to stdout [15934/15934]
example-host·
example-host Downloading Chef 11.14.0.alpha.1 for ubuntu...
example-host downloading https://www.opscode.com/chef/metadata?v=11.14.0.alpha.1&prerelease=false&nightlies=false&p=ubuntu&pv=12.04&m=x86_64
example-host   to file /tmp/install.sh.2411/metadata.txt
example-host trying wget...
example-host ERROR 404
example-host Unable to retrieve a valid package!
example-host Please file a bug report at http://tickets.opscode.com
example-host Project: Chef
example-host Component: Packages
example-host Label: Omnibus
example-host Version: 11.14.0.alpha.1 
example-host··
example-host Please detail your operating system type, version and any other relevant details
example-host Metadata URL: https://www.opscode.com/chef/metadata?v=11.14.0.alpha.1&prerelease=false&nightlies=false&p=ubuntu&pv=12.04&m=x86_64
example-host Starting first Chef Client run...
example-host bash: line 85: chef-client: command not found

permissions end up incorrect after install chef-dk on MacOS X

I grabbed and installed Chef-DK on my mac this afternoon, then immediately went to install the knife-windows plugin using the "chef gem" command.

The result:

$ chef gem install knife-windows
Fetching: uuidtools-2.1.4.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /opt/chefdk/embedded/lib/ruby/gems/2.1.0 directory.

The workaround I used was to change permissions on /op/chefdk to have myself as owner:

sudo chown -R $USER /opt/chefdk

should be a relatively simple fix in the installer when it's dropping things into place. I'm presuming we should be enabled to "gem update" and "gem install".

Link to Learn Chef site in the README

The README encourages readers to visit the Chef documentation and Learn Chef for more information about chef-client and knife yet only links to the documentation site.

Windows can't install into anything other than C:\opscode

If you try to install ChefDK into anything other than C:\opscode, the install completes, but none of the commands will run:

C:/Program Files (x86)/ChefDK/chefdk/bin/chef:44:in load': cannot load such file -- c:/opscode/chefdk/embedded/apps/chef-dk/bin/chef (LoadError)
from C:/Program Files (x86)/ChefDK/chefdk/bin/chef:44:in <main>'

Examining all the .bat files, they have c:\opscode hardcoded into them.

Knife error - `parse': '11.14.0.alpha.1' does not match 'x.y.z' or 'x.y' (Chef::Exceptions::InvalidCookbookVersion)

When I run knife I see the following error:

$ knife
ERROR: You need to pass a sub-command (e.g., knife SUB-COMMAND)

Usage: knife sub-command (options)
    -s, --server-url URL             Chef Server URL
        --chef-zero-port PORT        Port to start chef-zero on
    -k, --key KEY                    API Client Key
        --[no-]color                 Use colored output, defaults to false on Windows, true otherwise
    -c, --config CONFIG              The configuration file to use
        --defaults                   Accept default values for all questions
    -d, --disable-editing            Do not open EDITOR, just accept the data as is
    -e, --editor EDITOR              Set the editor to use for interactive commands
    -E, --environment ENVIRONMENT    Set the Chef environment
    -F, --format FORMAT              Which format to use for output
    -z, --local-mode                 Point knife commands at local repository instead of server
    -u, --user USER                  API Client Username
        --print-after                Show the data after a destructive operation
    -V, --verbose                    More verbose output. Use twice for max verbosity
    -v, --version                    Show chef version
    -y, --yes                        Say yes to all prompts for confirmation
    -h, --help                       Show this message

/opt/chefdk/embedded/apps/chef/lib/chef/version_class.rb:65:in `parse': '11.14.0.alpha.1' does not match 'x.y.z' or 'x.y' (Chef::Exceptions::InvalidCookbookVersion)
    from /opt/chefdk/embedded/apps/chef/lib/chef/version_class.rb:24:in `initialize'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/knife-block-0.1.0/lib/chef/knife/block.rb:29:in `new'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/knife-block-0.1.0/lib/chef/knife/block.rb:29:in `<module:GreenAndSecure>'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/knife-block-0.1.0/lib/chef/knife/block.rb:28:in `<top (required)>'
    from /opt/chefdk/embedded/apps/chef/lib/chef/knife/core/subcommand_loader.rb:34:in `load'
    from /opt/chefdk/embedded/apps/chef/lib/chef/knife/core/subcommand_loader.rb:34:in `block in load_commands'
    from /opt/chefdk/embedded/apps/chef/lib/chef/knife/core/subcommand_loader.rb:34:in `each'
    from /opt/chefdk/embedded/apps/chef/lib/chef/knife/core/subcommand_loader.rb:34:in `load_commands'
    from /opt/chefdk/embedded/apps/chef/lib/chef/knife.rb:120:in `load_commands'
    from /opt/chefdk/embedded/apps/chef/lib/chef/knife.rb:140:in `list_commands'
    from /opt/chefdk/embedded/apps/chef/lib/chef/application/knife.rb:191:in `print_help_and_exit'
    from /opt/chefdk/embedded/apps/chef/lib/chef/application/knife.rb:155:in `validate_and_parse_options'
    from /opt/chefdk/embedded/apps/chef/lib/chef/application/knife.rb:133:in `run'
    from /opt/chefdk/embedded/apps/chef/bin/knife:25:in `<top (required)>'
    from /usr/bin/knife:30:in `load'
    from /usr/bin/knife:30:in `<main>'

# jdyer at retina.local in /opt/chef [10:01:48]
$

I am running the 0.1.0 version

# jdyer at retina.local in /opt/chef [10:02:23]
$ chef -v
Chef Development Kit Version: 0.1.0

I see there are several files in the chef-dk package which seem to be tagged with this version:

# jdyer at retina.local in /opt/chef [10:00:36]
$ ack 11.14.0.alpha /opt/chefdk/embedded/
/opt/chefdk/embedded/apps/chef/Gemfile.lock
4:    chef (11.14.0.alpha.1)

/opt/chefdk/embedded/apps/chef/lib/chef/version.rb
20:  VERSION = '11.14.0.alpha.1'

/opt/chefdk/embedded/apps/chef/pkg/chef-11.14.0.alpha.1/lib/chef/version.rb
20:  VERSION = '11.14.0.alpha.1'

/opt/chefdk/embedded/apps/chef/pkg/chef-11.14.0.alpha.1-x86-mingw32/lib/chef/version.rb
20:  VERSION = '11.14.0.alpha.1'
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/axiom-types-0.1.1/.gitignore: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/axiom-types-0.1.1/.ruby-gemset: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/axiom-types-0.1.1/.yardopts: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/axiom-types-0.1.1/config/devtools.yml: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/axiom-types-0.1.1/config/mutant.yml: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/axiom-types-0.1.1/config/roodi.yml: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/axiom-types-0.1.1/config/yardstick.yml: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/axiom-types-0.1.1/Guardfile: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/axiom-types-0.1.1/LICENSE: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/axiom-types-0.1.1/Rakefile: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/axiom-types-0.1.1/TODO: cannot open file for reading

/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.14.0.alpha.1/lib/chef/version.rb
20:  VERSION = '11.14.0.alpha.1'
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/descendants_tracker-0.0.4/.gitignore: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/descendants_tracker-0.0.4/config/flog.yml: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/descendants_tracker-0.0.4/config/mutant.yml: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/descendants_tracker-0.0.4/config/yardstick.yml: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/descendants_tracker-0.0.4/Guardfile: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/descendants_tracker-0.0.4/LICENSE: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/descendants_tracker-0.0.4/Rakefile: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/descendants_tracker-0.0.4/spec/rcov.opts: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/descendants_tracker-0.0.4/spec/spec.opts: cannot open file for reading
ack: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/descendants_tracker-0.0.4/TODO: cannot open file for reading

/opt/chefdk/embedded/lib/ruby/gems/2.1.0/specifications/chef-11.14.0.alpha.1.gemspec
2:# stub: chef 11.14.0.alpha.1 ruby lib
6:  s.version = "11.14.0.alpha.1"

# jdyer at retina.local in /opt/chef [10:01:07]
$

Calling knife returns 'Could not locate Gemfile' message

[21:11:56] ~ > chef -v
Chef Development Kit Version: 0.1.0
[21:12:04] ~ > knife -v
Could not locate Gemfile
[21:12:09] ~ > which knife
/usr/bin/knife
[21:12:11] ~ > ls -al /usr/bin/knife
lrwxr-xr-x  1 root  wheel  21 Jun 23 21:09 /usr/bin/knife@ -> /opt/chefdk/bin/knife
[21:12:14] ~ > echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/packer

Any ideas why this may be happening? I included some command calls to show the path is set correctly. I am on a mac. Let me know if you want me to provide more information.

Thanks,
Jay

Can't run ChefSpec with ChefDK (Windows Alpha)?!

I'm kinda stuck here, guess I must be doing something wrong.

Having the chef-dk alpha for Windows installed, trying to run ChefSpec, I get this:

D:/Repos/_github/bills-kitchen/target/build/tools/chef-dk/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/chefspec-4.0.0/lib/chefspec/berkshelf.rb:4:in `rescue in <top (required)>': I could not load the 'Berkshelf' gem! You must have the gem installed (ChefSpec::Error::GemLoadError)
on your local system before you can use the berkshelf plugin.
You can install berkshelf by running:

    gem install berkshelf

or add Berkshelf to your Gemfile and run the `bundle` command to install.
...

Gem dir:

D:\Repos\_github\bills-kitchen\target\build\repo\sample-application-cookbook>gem environment gemdir
D:/Repos/_github/bills-kitchen/target/build/tools/chef-dk/opscode/chefdk/embedded/lib/ruby/gems/2.0.0

Gem environment:

D:\Repos\_github\bills-kitchen\target\build\repo\sample-application-cookbook>gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.14
  - RUBY VERSION: 2.0.0 (2014-02-24 patchlevel 451) [i386-mingw32]
  - INSTALLATION DIRECTORY: D:/Repos/_github/bills-kitchen/target/build/tools/chef-dk/opscode/chefdk/embedded/lib/ruby/gems/2.0.0
  - RUBY EXECUTABLE: D:/Repos/_github/bills-kitchen/target/build/tools/chef-dk/opscode/chefdk/embedded/bin/ruby.exe
  - EXECUTABLE DIRECTORY: D:/Repos/_github/bills-kitchen/target/build/tools/chef-dk/opscode/chefdk/embedded/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-mingw32
  - GEM PATHS:
     - D:/Repos/_github/bills-kitchen/target/build/tools/chef-dk/opscode/chefdk/embedded/lib/ruby/gems/2.0.0
     - D:/Repos/_github/bills-kitchen/target/build/home/.chefdk/gem/ruby/2.0.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "install" => "--user"
     - "update" => "--user"
  - REMOTE SOURCES:
     - https://rubygems.org/

Berks is there as well:

D:\Repos\_github\bills-kitchen\target\build\repo\sample-application-cookbook>which berks
D:\Repos\_github\bills-kitchen\target\build\tools\chef-dk\opscode\chefdk\bin\berks

Any ideas?

/cc @sethvargo @danielsdeleo

Unable to run `kitchen init`

I had already run sudo chef gem install kitchen-vagrant and have seen #15 which could be related.

edit: I'm using Ubuntu 12.04 if that's at all relevant

At first it looked to be using the default OS installed gem command

james.c@jc-hp-laptop:~/Projects/dummy-app$ kitchen init
      create  .kitchen.yml
      create  test/integration/default
         run  gem install kitchen-vagrant from "."
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied - /var/lib/gems/1.9.1

I modified the path to force the chefdk packaged gem

james.c@jc-hp-laptop:~/Projects/dummy-app$ export PATH=/opt/chefdk/embed
ded/bin:$PATH
james.c@jc-hp-laptop:~/Projects/dummy-app$ kitchen init
   identical  .kitchen.yml
         run  gem install kitchen-vagrant from "."
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /opt/chefdk/embedded/lib/ruby/gems/2.1.0 directory.

It still errors but I don't figure why it's trying to re-install when the package is installed already.

james.c@jc-hp-laptop:~/Projects/dummy-app$ chef gem list kitchen-vagrant

*** LOCAL GEMS ***

kitchen-vagrant (0.14.0)

james.c@jc-hp-laptop:~/Projects/dummy-app$ gem list kitchen-vagrant

*** LOCAL GEMS ***

kitchen-vagrant (0.14.0)

ohai should be runnable after installing Chef DK

One of the steps in new LearnChef tutorials is the ability to run ohai and collect a bunch of system information. Hence ohai should be runnable after installing Chef DK.

/cc: @opscode/client-eng

chef-apply requires privileged access to run

Title says it all, tries to mkdir /var/chef

# MacOS 10.9
$ chef -v
Chef Development Kit Version: 0.1.0
$ chef-apply test.rb 
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.14.0.alpha.1/lib/chef/mixin/create_path.rb:49:in `mkdir': Permission denied @ dir_s_mkdir - /var/chef (Errno::EACCES)
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.14.0.alpha.1/lib/chef/mixin/create_path.rb:49:in `block in create_path'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.14.0.alpha.1/lib/chef/mixin/create_path.rb:45:in `each_index'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.14.0.alpha.1/lib/chef/mixin/create_path.rb:45:in `create_path'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.14.0.alpha.1/lib/chef/file_cache.rb:206:in `create_cache_path'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.14.0.alpha.1/lib/chef/file_cache.rb:55:in `store'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.14.0.alpha.1/lib/chef/application.rb:245:in `debug_stacktrace'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.14.0.alpha.1/lib/chef/application/apply.rb:157:in `rescue in run_application'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.14.0.alpha.1/lib/chef/application/apply.rb:150:in `run_application'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.14.0.alpha.1/lib/chef/application/apply.rb:165:in `run'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.14.0.alpha.1/bin/chef-apply:25:in `<top (required)>'
    from /opt/chefdk/embedded/bin/chef-apply:23:in `load'
    from /opt/chefdk/embedded/bin/chef-apply:23:in `<main>'

Chef Verify Failures on Windows

  1. Windows doesn't necessarily have touch;
  2. The PATH setting will have the same Path vs. PATH and path separator problems we fixed in omnibus-chef.

ChefDK fails on windows due to Chef incompatibility with ruby 2.0

The error is like this:

$ chef -v
c:/opscode/chefdk/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': 126: The specified module could not be found.   - c:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/win32-api-1.4.8-x86-mingw32/lib/win32/ruby19/win32/api.so (LoadError)
        from c:/opscode/chefdk/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from c:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/win32-api-1.4.8-x86-mingw32/lib/win32/api.rb:2:in `<top (required)>'
        from c:/opscode/chefdk/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from c:/opscode/chefdk/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from c:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/windows-api-0.4.2/lib/windows/api.rb:1:in `<top (required)>'
        from c:/opscode/chefdk/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from c:/opscode/chefdk/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from c:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/windows-pr-1.2.2/lib/windows/handle.rb:1:in `<top (required)>'
        from c:/opscode/chefdk/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from c:/opscode/chefdk/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from c:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/mixlib-shellout-1.4.0-x86-mingw32/lib/mixlib/shellout/windows.rb:22:in `<top (required)>'
        from c:/opscode/chefdk/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from c:/opscode/chefdk/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'

We need to release an updated chef-client to rubygems with the updated win32-api dependency, and then update ChefDK to use the newer version.

Chef DK and OpenSSL w/ Open Source Chef Server

I installed ChefDk on my server and it broke my OpenSSL configuration/knife client. I am on open source chef server (11.4.4) on RHEL 6. Essentially, when I tried to connect to Chef Server with knife ( knife client list for example) I would get weird error like:

OpenSSL::SSL::SSLError: SSL_connect returned=5 errno=0 state=SSLv3 read server certificate B: certificate verify failed

When I checked the SSL configuration being used using "knife ssl check" I saw that OpenSSL was using ChefDk certs instead of the certs embedded with the original omnibus install.

I had to uninstall ChefDK and reinstall chef-client.

Can Chef DK be installed alongside an existing chef-client/knife that relies on OpenSSL to connect to the server? Or am I missing something?

`chef verify` on new OSX install fails

Seems there are multiple versions of rake expected.

Running verification for component 'berkshelf'
Running verification for component 'test-kitchen'
Running verification for component 'chef-client'
Running verification for component 'chef-dk'


/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find rake-0.9.6 in any of the sources (Bundler::GemNotFound)
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/spec_set.rb:85:in `map!'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/spec_set.rb:85:in `materialize'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/definition.rb:133:in `specs'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/definition.rb:178:in `specs_for'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/definition.rb:167:in `requested_specs'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/environment.rb:18:in `requested_specs'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/runtime.rb:13:in `setup'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler.rb:119:in `setup'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/setup.rb:17:in `<top (required)>'
    from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'



/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find rake-10.1.1 in any of the sources (Bundler::GemNotFound)
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/spec_set.rb:85:in `map!'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/spec_set.rb:85:in `materialize'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/definition.rb:133:in `specs'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/definition.rb:178:in `specs_for'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/definition.rb:167:in `requested_specs'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/environment.rb:18:in `requested_specs'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/runtime.rb:13:in `setup'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler.rb:119:in `setup'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/setup.rb:17:in `<top (required)>'
    from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'



/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find rake-10.2.2 in any of the sources (Bundler::GemNotFound)
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/spec_set.rb:85:in `map!'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/spec_set.rb:85:in `materialize'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/definition.rb:133:in `specs'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/definition.rb:178:in `specs_for'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/definition.rb:167:in `requested_specs'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/environment.rb:18:in `requested_specs'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/runtime.rb:13:in `setup'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler.rb:119:in `setup'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/setup.rb:17:in `<top (required)>'
    from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'



/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find hashie-2.1.1 in any of the sources (Bundler::GemNotFound)
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/spec_set.rb:85:in `map!'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/spec_set.rb:85:in `materialize'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/definition.rb:133:in `specs'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/definition.rb:178:in `specs_for'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/definition.rb:167:in `requested_specs'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/environment.rb:18:in `requested_specs'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/runtime.rb:13:in `setup'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler.rb:119:in `setup'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.5.2/lib/bundler/setup.rb:17:in `<top (required)>'
    from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'

Document how to uninstall chefdk

It would also be helpful if there was documentation (or better yet an uninstaller app) on how to uninstall ChefDK. I know you can generally just rm -rf /opt/chefdk but there are those pesky symlinks in /usr/bin. Are there any other changes that need to be removed?

It would help remove the unease of installing something that might break existing setups if we knew that we could uninstall it so that the install/uninstall would not break any other styles of installation.

ChefDK comes with broken tar.exe

The chefdk/bin/tar.EXE seems to be broken. When you try to run it an error message pops up, saying "D:\path\to\chefdk\bin\tar.EXE is not a valid Win32 application".

This brings you into all kinds of troubles because you typically add ChefDK frontmost to your path %PATH%.

For example, I had problems running vagrant plugin install vagrant-berkshelf --plugin-version 2.0.1 which failed for mysterious reasons. It turned out that it failed to install some native gems due to the broken tar.exe:

...
Building native extensions.  This could take a while...
ERROR:  Error installing dep-selector-libgecode:
        ERROR: Failed to build gem native extension.

    D:/Repos/_github/bills-kitchen/target/build/tools/vagrant/HashiCorp/Vagrant/embedded/bin/ruby.exe extconf.rb
checking for the host operating system... Windows
...
checking for diff... ok
checking for tar... no
configure: error: In order to compile Gecode, you need the tar tool.
extconf.rb:98:in `block in run': Failed to build gecode library. (GecodeBuild::BuildError)
...

I guess there much more potential for confusion if you have a broken tar.exe on your PATH...

Windows chef-dk alpha is very large.

This is related to #59 , but the alpha build of Windows ChefDK is very large (350MB MSI). I'm unsure where the large size comes from, but while doing gem list I noticed there are lot of deps that have a variety of versions installed. Examples:

chef (11.14.0.alpha.5 x86-mingw32, 11.14.0.alpha.4 x86-mingw32, 11.12.8 x86-mingw32)
chef-zero (2.1.5, 2.0.2, 1.5.6)
ffi (1.9.3 x86-mingw32, 1.5.0 x86-mingw32)
gherkin (2.12.2 x86-mingw32, 2.11.8 x86-mingw32)
nokogiri (1.6.2.1 x86-mingw32, 1.6.1 x86-mingw32, 1.5.11 x86-mingw32)
pry (0.10.0 i386-mingw32, 0.9.12.6 i386-mingw32)
yajl-ruby (1.2.1, 1.1.0 x86-mingw32)

chef-solo from chefdk slow to run at startup. Not sure how to troubleshoot

[Disclaimer: I'm only in the crawl stage of crawl/walk/run when it goes to chef. Ruby as well. Hence, I'm initially attracted to the promise of chefdk to simply setting up our chef cookbook authoring environments.What's not clear if the problem I'm experiencing is related to chefdk's packaging of chef-solo, or chef-solo itself.]

We are starting down the chef journey and have developed some cookbooks which don't do much at this point other than containing a few cookbook_file resources. We are trying to run chef-solo to execute, but some of us are getting intermittent behavior where executing chef-solo takes a long time to run early in the process. For example, take a look at the debug output below:

> chef-solo -c solo.rb -j solo.json

2014-06-19T16:48:58-04:00] INFO: Forking chef instance to converge...
[2014-06-19T16:48:58-04:00] DEBUG: Fork successful. Waiting for new chef pid: 2357
[2014-06-19T16:48:58-04:00] DEBUG: Forked instance now converging
Starting Chef Client, version 11.14.0.alpha.1
[2014-06-19T16:48:58-04:00] INFO: *** Chef 11.14.0.alpha.1 ***
[2014-06-19T16:48:58-04:00] INFO: Chef-client pid: 2357
[2014-06-19T16:48:58-04:00] DEBUG: Chef-client request_id: 50c60c2e-8aaa-482e-bad0-22bb94efa033
[2014-06-19T16:53:36-04:00] DEBUG: Building node object for cmbl12fe3584d.corp.mycompany.net
[2014-06-19T16:53:36-04:00] DEBUG: Extracting run list from JSON attributes provided on command line
[2014-06-19T16:53:36-04:00] INFO: Setting the run_list to ["recipe[qbms-refapp::basic]"] from CLI options
…
[2014-06-19T16:53:36-04:00] INFO: Chef Run complete in 0.137266 seconds

Running handlers:
[2014-06-19T16:53:36-04:00] INFO: Running report handlers
Running handlers complete

[2014-06-19T16:53:36-04:00] INFO: Report handlers complete
Chef Client finished, 0/44 resources updated in 278.398912 seconds
[2014-06-19T16:53:36-04:00] DEBUG: Forked instance successfully reaped (pid: 2357)
[2014-06-19T16:53:36-04:00] DEBUG: Exiting

Note there is a 5 minute gap of time before the debug log line "Building node object for cmbl12fe3584d.corp.mycompany.net" shows up in the logs.

Based on my very limited knowledge of chef and chefdk, I would guess that maybe during the part of the lifecyle where its executing ohai to gather node specific information, something is taking a long time -- perhaps eventually timing out.

Some of us are seeing this behavior consistently. Some of us are seeing this behavior intermittently.

As I said in my disclaimer above, I'm not sure this related to chefdk or chef-solo in general. Trouble is, I don't know how to troubleshoot it. My latest thinking is to try to follow the path of trying to learn ohai and try to learn how to disable it and or some of its plugins. This link appears to be setting me in a direction.

https://wiki.opscode.com/display/chef/Disabling+Ohai+Plugins

But if anyone has other suggestions to help troubleshoot this, please let me know. Also, if this is not the right forum for this issue, please point me in the right direction. I'm assuming if this is specific to chefdk you guys would want to know about it.

Thanks.

Chef Client binaries fail with dyld: lazy symbol binding failed: Symbol not found: _yajl_alloc

In the latest Chef DK releases, Chef Client binaries fail with this:

knife node list                 ‹2.1.1›
dyld: lazy symbol binding failed: Symbol not found: _yajl_alloc
  Referenced from: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/extensions/x86_64-darwin-13/2.1.0/ffi-yajl-0.2.0/ffi_yajl/ext/parser.bundle
  Expected in: flat namespace

dyld: Symbol not found: _yajl_alloc
  Referenced from: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/extensions/x86_64-darwin-13/2.1.0/ffi-yajl-0.2.0/ffi_yajl/ext/parser.bundle
  Expected in: flat namespace

[1]    18268 trace trap  knife node list

@lamont-granquist is working on a solution. This is just to keep track of the issue.

Add file to enable vendoring chef-dk and required gems within the chef-dk ruby instance

As a cookbook developer, it would be really nice to be able to simply set my Gemfile to contain something like:

source 'https://rubygems.org'

gem 'chef-dk'

Along with a hash attribute or another file which defines the Gemfile contents required within the chef-dk rruby environment to be able to run anything needed, such as chefspec, serverspec, etc.. (A hash attribute would also work well for this.)

This will allow any developer, or CI system, to vendor a cookbook with all the required dependencies and ensure it is using the correct environment.

A mock of this would be something like:

source 'https://rubygems.org'

gem 'chef-dk'

group :chef-dk do
  gem 'chefspec'
  gem 'serverspec'
end

chef generate cookbook: documentation on customizing output

Hello,

I'm trying to find some documentation on what the chef generate cookbook command does and how you are supposed to customize it. The readme only mentions that it generates a cookbook (which is kind of obvious). There was a conversation started at test-kitchen/test-kitchen#425 which led us to believe that ChefDK was designed to allow us to customize the cookbook generator so that our .kitchen.yml file could be generated to our liking. How can we customize the generator and where can I find more documentation about this?

New build of ChefDK against new net-ssh

net-ssh 2.8.0 — shipped with the current build of ChefDK — includes a rather annoying bug around ssh-agent and the IdentitiesOnly setting:

  • if IdentitiesOnly is set to yes, the keys_only option gets set to true on Net::SSH, and when :keys_only => true, Net::SSH will never use the ssh agent.

This bad behavior was fixed in Net::SSH 2.9.0 (this commit specifically: net-ssh/net-ssh@6232252).

opscode/chef appears to look for ~> 2.6 when resolving dependencies, so a new build of the ChefDK should pick up the latest release of net-ssh.

I would very much appreciate a new build to address this bug! I spent a good chunk of time today hunting down why knife ssh was being fussy for me but not for my colleagues using Chef through means besides ChefDK. 😁

Run 'make clean' in depselector-libgecode vendor directory

% cd ./ext/libgecode3/vendor/gecode-3.7.3/
% du -sk .
160132  .
% make clean
[...output...]
% du -sk .
27376   .

== 133MB of .o files and duplicated .so's deleted.

the whole ext directory is also unnecessary to the runtime and could probably be nuked.

Can't run chef generate cookbook with an existing cookbook

Not quite sure what I expected, to be honest. I was hoping it would behave more like berks cookbook when given an existing cookbook dir (where it just asks if it can override some files and adds missing ones).

Ran this from inside a folder with many cookbooks. Cookbook dir site-users already exists and has files in it:

[10:04:53] rfonseca@cookbooks{510}$ chef generate cookbook site-users
Compiling Cookbooks...
Recipe: code_generator::cookbook
  * directory[/Users/rfonseca/Documents/Code/cookbooks/site-users] action create (up to date)
  * template[/Users/rfonseca/Documents/Code/cookbooks/site-users/metadata.rb] action create
================================================================================
Error executing action `create` on resource 'template[/Users/rfonseca/Documents/Code/cookbooks/site-users/metadata.rb]'
================================================================================


Errno::EACCES
-------------
Permission denied @ dir_s_mkdir - /var/chef


Resource Declaration:
---------------------
# In /opt/chefdk/embedded/apps/chef-dk/lib/chef-dk/skeletons/code_generator/recipes/cookbook.rb

 10: template "#{cookbook_dir}/metadata.rb" do
 11:   helpers(ChefDK::Generator::TemplateHelper)
 12: end
 13: 



Compiled Resource:
------------------
# Declared in /opt/chefdk/embedded/apps/chef-dk/lib/chef-dk/skeletons/code_generator/recipes/cookbook.rb:10:in `from_file'

template("/Users/rfonseca/Documents/Code/cookbooks/site-users/metadata.rb") do
  provider Chef::Provider::Template
  action "create"
  retries 0
  retry_delay 2
  guard_interpreter :default
  path "/Users/rfonseca/Documents/Code/cookbooks/site-users/metadata.rb"
  backup 5
  atomic_update true
  source "metadata.rb.erb"
  helper_modules [ChefDK::Generator::TemplateHelper]
  cookbook_name :code_generator
  recipe_name "cookbook"
end



/opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:250:in `mkdir': template[/Users/rfonseca/Documents/Code/cookbooks/site-users/metadata.rb] (code_generator::cookbook line 10) had an error: Errno::EACCES: Permission denied @ dir_s_mkdir - /var/chef (Errno::EACCES)
    from /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:250:in `fu_mkdir'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:224:in `block (2 levels) in mkdir_p'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:222:in `reverse_each'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:222:in `block in mkdir_p'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:208:in `each'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:208:in `mkdir_p'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/util/backup.rb:69:in `do_backup'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/util/backup.rb:32:in `backup!'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/provider/file.rb:332:in `do_backup'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/provider/file.rb:340:in `update_file_contents'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/provider/file.rb:372:in `block in do_contents_changes'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/mixin/why_run.rb:52:in `call'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/mixin/why_run.rb:52:in `add_action'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/provider.rb:155:in `converge_by'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/provider/file.rb:371:in `do_contents_changes'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/provider/file.rb:121:in `action_create'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/provider.rb:120:in `run_action'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/resource.rb:637:in `run_action'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/runner.rb:49:in `run_action'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/runner.rb:81:in `block (2 levels) in converge'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/runner.rb:81:in `each'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/runner.rb:81:in `block in converge'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/resource_collection.rb:98:in `block in execute_each_resource'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/resource_collection.rb:96:in `execute_each_resource'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/runner.rb:80:in `converge'
    from /opt/chefdk/embedded/apps/chef-dk/lib/chef-dk/chef_runner.rb:36:in `converge'
    from /opt/chefdk/embedded/apps/chef-dk/lib/chef-dk/command/generator_commands.rb:177:in `run'
    from /opt/chefdk/embedded/apps/chef-dk/lib/chef-dk/command/generate.rb:71:in `run'
    from /opt/chefdk/embedded/apps/chef-dk/lib/chef-dk/command/base.rb:57:in `run_with_default_options'
    from /opt/chefdk/embedded/apps/chef-dk/lib/chef-dk/cli.rb:83:in `run_subcommands'
    from /opt/chefdk/embedded/apps/chef-dk/lib/chef-dk/cli.rb:56:in `run'
    from /opt/chefdk/embedded/apps/chef-dk/bin/chef:25:in `<top (required)>'
    from /usr/bin/chef:31:in `load'
    from /usr/bin/chef:31:in `<main>'

kitchen-vagrant missing when installing chef-dk from dmg

Hi folks,

I hope this is the right place to post this: I've installed the dev kit from the dmg found here: http://www.getchef.com/downloads/chef-dk/mac/ version 0.0.1-1 and it was complaining with this error message:

-----> Starting Kitchen (v1.2.1)
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ClientError
>>>>>> Message: Could not load the 'vagrant' driver from the load path. Please ensure that your driver is installed as a gem or included in your Gemfile if using Bundler.
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration

I got some advice from the #chef irc channel and they said that I should install the gem using chef gem install kitchen-vagrant and it worked

I would submit a PR to add it as dependency but i have no idea how to do that, I'm not a ruby guy.

chef gem install <gemname> --version displays chefDK version

When attempting to install a specific version of a gem into the embedded ruby, the chef version number is displayed rather than passing the --version flag on to the gem command. Also occurs when using the short form "-v" flag

$ chef gem install rbvmomi --version 1.6.0
Chef Development Kit Version: 0.1.0

failing to install knife-ec2 in Chef-DK embedded setup

trying:

sudo chef gem install knife-ec2

Results:

Building native extensions.  This could take a while...
ERROR:  Error installing knife-ec2:
    ERROR: Failed to build gem native extension.

    /opt/chefdk/embedded/bin/ruby extconf.rb
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/opt/chefdk/embedded/bin/ruby
    --with-openssl-config
    --without-openssl-config
    --with-pkg-config
    --without-pkg-config
/opt/chefdk/embedded/lib/ruby/2.1.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /opt/chefdk/embedded/lib/ruby/2.1.0/mkmf.rb:541:in `try_link0'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/mkmf.rb:556:in `try_link'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/mkmf.rb:642:in `block in try_ldflags'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/mkmf.rb:635:in `with_ldflags'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/mkmf.rb:641:in `try_ldflags'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/mkmf.rb:1762:in `pkg_config'
    from extconf.rb:61:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /Users/heckj/.chefdk/gem/ruby/2.1.0/gems/eventmachine-1.0.3 for inspection.
Results logged to /Users/heckj/.chefdk/gem/ruby/2.1.0/extensions/x86_64-darwin-13/2.1.0/eventmachine-1.0.3/gem_make.out

Results of chef gem env:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.1
  - RUBY VERSION: 2.1.1 (2014-02-24 patchlevel 76) [x86_64-darwin13.0]
  - INSTALLATION DIRECTORY: /opt/chefdk/embedded/lib/ruby/gems/2.1.0
  - RUBY EXECUTABLE: /opt/chefdk/embedded/bin/ruby
  - EXECUTABLE DIRECTORY: /opt/chefdk/embedded/bin
  - SPEC CACHE DIRECTORY: /Users/heckj/.gem/specs
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-13
  - GEM PATHS:
     - /opt/chefdk/embedded/lib/ruby/gems/2.1.0
     - /Users/heckj/.chefdk/gem/ruby/2.1.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "install" => "--user"
     - "update" => "--user"
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /Users/heckj/.rvm/gems/ruby-2.0.0-p451/bin
     - /Users/heckj/.rvm/gems/ruby-2.0.0-p451@global/bin
     - /Users/heckj/.rvm/rubies/ruby-2.0.0-p451/bin
     - /usr/local/heroku/bin
     - /usr/local/bin
     - /usr/local/sbin
     - /Users/heckj/.ec2/bin
     - /Users/heckj/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /usr/local/bin
     - /opt/X11/bin
     - /usr/local/Cellar/go/1.2/bin
     - /Users/heckj/.rvm/bin
     - /Applications/microchip/xc8/v1.30/bin
     - /Applications/microchip/xc16/v1.21/bin
     - /Users/heckj/.chefdk/gem/ruby/2.1.0/bin

rvm status:

$ rvm list

rvm rubies

   ruby-2.0.0-p247 [ x86_64 ]
=* ruby-2.0.0-p451 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Gem list:

$ gem list --local
*** LOCAL GEMS ***

bigdecimal (1.2.0)
bundler (1.6.1)
bundler-unload (1.0.2)
executable-hooks (1.3.1)
gem-wrappers (1.2.4)
io-console (0.4.2)
json (1.7.7)
minitest (4.3.2)
psych (2.0.0)
rake (0.9.6)
rdoc (4.0.0)
rubygems-bundler (1.4.3)
rvm (1.11.3.9)
test-unit (2.0.0.0)

Run `gem cleanup` before packaging

From #70, the resulting binary is relatively large. It was proposed that we test running gem cleanup as part of the build/cleanup step before packaging.

@danielsdeleo was concerned that gem cleanup would remove things we actually need, but in my experience, the command will halt when removing a gem that shouldn't be removed (because it would break a dependency chain).

For example:

chef-11.12.8 depends on rspec-mocks (~> 2.14.0, development)
chef-11.12.4 depends on rspec-mocks (~> 2.14.0, development)
rspec-2.14.1 depends on rspec-mocks (~> 2.14.0)
If you remove this gem, these dependencies will not be met.
Continue with Uninstall? [yN]

The fact that it prompts scares me, and there doesn't seem to be a way to specify --no:

Usage: gem cleanup [GEMNAME ...] [options]

  Options:
    -n, -d, --dryrun                 Do not uninstall gems


  Common Options:
    -h, --help                       Get help on this command
    -V, --[no-]verbose               Set the verbose level of output
    -q, --quiet                      Silence commands
        --config-file FILE           Use this config file instead of default
        --backtrace                  Show stack backtrace on errors
        --debug                      Turn on Ruby debugging

It would be useful to have some size comparisons and see if this makes a difference.

With 'chef generate app', kitchen doesn't seem to find metada.rb

After I create an app cookbook with

$ chef generate app dtcat-joomla

I get the following tree:

dtcat-joomla
├── cookbooks
│   └── dtcat-joomla
│       ├── Berksfile
│       ├── Berksfile.lock
│       ├── chefignore
│       ├── metadata.rb
│       └── recipes
│           └── default.rb
├── .gitignore
├── .kitchen.yml
└── README.md

The content of the files:

.kitchen.yml


---
driver:
  name: vagrant

driver_config:
  network:
    - ['private_network', {ip: '192.168.0.2'}]

provisioner:
  name: chef_solo

platforms:
  - name: ubuntu-12.04

suites:
  - name: default
    run_list:
      - recipe[apt]
      - recipe[dtcat-joomla::default]

metadata.rb

name             'dtcat-joomla'
maintainer       'David Gil'
maintainer_email ''
license          ''
description      'Installs/Configures '
long_description 'Installs/Configures '
version          '0.1.0'

depends 'apt'

Berksfile

source "https://api.berkshelf.com"

metadata

cookbook 'apt'

Error

When I do kitchen converge, I get the following error:

Starting Chef Client, version 11.12.4       
[2014-05-15T09:42:09+00:00] INFO: *** Chef 11.12.4 ***       
[2014-05-15T09:42:09+00:00] INFO: Chef-client pid: 1850       
[2014-05-15T09:42:10+00:00] INFO: Setting the run_list to ["recipe[apt]", "recipe[dtcat-joomla::default]"] from CLI options       
[2014-05-15T09:42:10+00:00] INFO: Run List is [recipe[apt], recipe[dtcat-joomla::default]]       
[2014-05-15T09:42:10+00:00] INFO: Run List expands to [apt, dtcat-joomla::default]       
[2014-05-15T09:42:10+00:00] INFO: Starting Chef Run for default-ubuntu-1204       
[2014-05-15T09:42:10+00:00] INFO: Running start handlers       
[2014-05-15T09:42:10+00:00] INFO: Start handlers complete.       
Compiling Cookbooks...       

Running handlers:       
[2014-05-15T09:42:10+00:00] ERROR: Running exception handlers       
Running handlers complete       

[2014-05-15T09:42:10+00:00] ERROR: Exception handlers complete       
[2014-05-15T09:42:10+00:00] FATAL: Stacktrace dumped to /tmp/kitchen/cache/chef-stacktrace.out       
Chef Client failed. 0 resources updated in 1.742303935 seconds       
[2014-05-15T09:42:10+00:00] ERROR: Cookbook apt not found. If you're loading apt from another cookbook, make sure you configure the dependency in your metadata       
[2014-05-15T09:42:10+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)       
>>>>>> Converge failed on instance <default-ubuntu-1204>.
>>>>>> Please see .kitchen/logs/default-ubuntu-1204.log for more details
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: SSH exited (1) for command: [env http_proxy=http://proxy.foo.es:3333 https_proxy=http://proxy.foo.es:3333 sudo -E chef-solo --config /tmp/kitchen/solo.rb --json-attributes /tmp/kitchen/dna.json  --log_level info]
>>>>>> ----------------------

It seems that kitchen doesn't find the metada.rb file, which lies deep inside the tree (cookbooks/dtcat-joomla). I tried to run kitchen from cookbooks/dtcat-joomla, but then it doesn't find .kitchen.yml.

chef-dk 0.1.0-1 bundled ruby is linked against libc 2.17 or later.

ChefDK for Ubuntu is linked against a version of libc6 which is not distributed by default with Ubuntu 12.04.

$ USE_SYSTEM_GECODE=1 chef gem install dep-selector-libgecode
/opt/chefdk/embedded/bin/ruby: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found (required by /opt/chefdk/embedded/lib/libruby.so.2.1)

The expected behavior is to be linked against libc6 version <= 2.15

Support chef-dk on Mac OSX 10.8

Just installed 0.0.1 on Mountain Lion, getting this error:

$ /opt/chefdk/bin/chef
dyld: lazy symbol binding failed: Symbol not found: ___strlcpy_chk
  Referenced from: /opt/chefdk/embedded/lib/libruby.2.1.0.dylib
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: ___strlcpy_chk
  Referenced from: /opt/chefdk/embedded/lib/libruby.2.1.0.dylib
  Expected in: /usr/lib/libSystem.B.dylib

Trace/BPT trap: 5

I had an older CLI tools, so I upgraded that and re-installed the DMG, but that has not apparently made any difference.

Willing to hop in a hangout or send any debug info you like.
selfie-0

Implement chef test unit command that can run ChefSpec

In order to run my ChefSpec tests I have to use /opt/chefdk/embedded/bin/rspec. This is weird. It would be nice if I could just run chefspec (as some kind of alias to chefdk's rspec) or a command like chef test unit.

Windows installer defects

There are some defects in the alpha build Windows installer.

Text alignment problems throughout:

screen shot 2014-06-11 at 3 17 00 pm

Some of the text is black instead of white:

screen shot 2014-06-11 at 3 17 42 pm

Some of the icons are inadvertently replaced with the Chef Logo:

screen shot 2014-06-11 at 3 18 13 pm

How does ChefDK interoperate (or break) normal ruby gem workflows?

As a long time user of Chef, I am finding that installing ChefDK a very scary prospect. This may be due to some lack of documentation.

  • How is this not going to cause the same pain and grief as when Vagrant when from Gems to package?
  • How does this interact with normal bundle install in cookbooks, or other app development that might use gems that are associated with chef, berkshelf, etc.?
  • How does it interact with (or break) rvm/rbenv workflows?

An indication of this confusion is that Berkshelf says to put /opt/chefdk/embedded/bin in your $PATH

Input/output error on Windows when trying to converge with test-kitchen

Hi All,

I've been directed here from chef-hacking on IRC to file an issue. Essentially I'm getting a strange error when I try to converge with test kitchen: Message: Input/output error - CreateProcessW

I installed the Chef-DK alpha (or should i call it super alpha) from here: http://lists.opscode.com/sympa/arc/chef/2014-06/msg00244.html

Here is a full log of the problem (repeated a few times): https://cloudup.com/cXrQV8HIXFf

I'm happy to experiment but I would need some guidance because i'm not really a ruby guy, so if you need me to try something out just let me know.

embedded rubocop out of date

have been giving chfedk a whirl last couple days. One issue I had was that rubocop is 0.18.0 and the release is 0.21.0

There are incompatible config changes in the most recent releases that cause the older chefdk rubo to ignore my cookbooks' .rubocop.yml

Easily remedied with a chef gem update rubocop, but might be better to have latest shipped with chefdk.

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.