chef-boneyard / chef-dk

DEPRECATED: A streamlined development and deployment workflow for Chef Infra platform.
Apache License 2.0
380 stars 170 forks source link

`chef verify` fails on Windows with ChefDK 0.7.0 #470

Closed tknerr closed 8 years ago

tknerr commented 9 years ago

While doing a sanity check after installing ChefDK 0.7.0 I noticed that chef verify fails on Windows because ...Could not find gem 'chef-provisioning (= 1.3.0) x86-mingw32' in any of the gem:

Check the ChefDK version:

C:\Repos\_github\bills-kitchen\target\build>chef -v
Chef Development Kit Version: 0.7.0
chef-client version: 12.4.1
berks version: 3.2.4
kitchen version: 1.4.2

Run chef verify:

C:\Repos\_github\bills-kitchen\target\build>chef verify
Running verification for component 'berkshelf'
Running verification for component 'test-kitchen'
Running verification for component 'chef-client'
Running verification for component 'chef-dk'
Running verification for component 'chef-provisioning'
Running verification for component 'chefspec'
Running verification for component 'rubocop'
Running verification for component 'fauxhai'
Running verification for component 'knife-spork'
Running verification for component 'kitchen-vagrant'
Running verification for component 'package installation'
Running verification for component 'openssl'
...Could not find gem 'chef-provisioning (= 1.3.0) x86-mingw32' in any of the gem
sources listed in your Gemfile or available on this machine.

Driver list (no version restrictions):
  chef-provisioning-aws
  chef-provisioning-azure
  chef-provisioning-fog
  chef-provisioning-vagrant
........

...................................................................................
---------------------------------------------
Verification of component 'rubocop' succeeded.
Verification of component 'kitchen-vagrant' succeeded.
Verification of component 'openssl' succeeded.
Verification of component 'chef-provisioning' failed.
Verification of component 'fauxhai' succeeded.
Verification of component 'package installation' succeeded.
Verification of component 'knife-spork' succeeded.
Verification of component 'chefspec' succeeded.
Verification of component 'chef-client' succeeded.
Verification of component 'berkshelf' succeeded.
Verification of component 'chef-dk' succeeded.
Verification of component 'test-kitchen' succeeded.

Checking for the chef-provisioning gem shows that it installed 1.3.0, but indeed not the x86-mingw32 version:

C:\Repos\_github\bills-kitchen\target\build>gem list chef-provisioning

*** LOCAL GEMS ***

chef-provisioning (1.3.0)
chef-provisioning-aws (1.3.1)
chef-provisioning-azure (0.3.2)
chef-provisioning-fog (0.13.2)
chef-provisioning-vagrant (0.9.0)
tknerr commented 9 years ago

Trying to reproduce what chef verify does here:

Using this Gemfile:

gem "chef-provisioning", "= 1.3.0"
gem "chef-provisioning-aws"
gem "chef-provisioning-azure"
gem "chef-provisioning-fog"
gem "chef-provisioning-vagrant"

When I run bundle install --local --quiet:

C:\Repos\_github\bills-kitchen\target\build\tmp>bundle install --local --quiet
Could not find gem 'chef-provisioning (= 1.3.0) x86-mingw32' in any of the gem
sources listed in your Gemfile or available on this machine.

No clue why it is looking for the "x86-mingw32" gem though...

tknerr commented 9 years ago

Using :platform => :ruby in the Gemfile makes the chef verify test pass:

platforms :ruby do
  gem "chef-provisioning", "= 1.3.0"
  gem "chef-provisioning-aws"
  gem "chef-provisioning-azure"
  gem "chef-provisioning-fog"
  gem "chef-provisioning-vagrant"
end

Running bundle install --local now:

C:\Repos\_github\bills-kitchen\target\build\tmp>bundle install --local
Resolving dependencies...
Using bundler 1.10.0
Bundle complete! 5 Gemfile dependencies, 1 gem now installed.
Bundled gems are installed into C:/Repos/_github/bills-kitchen/target/build/home/.chefdk/gem/ruby/2.1.0.
randomcamel commented 9 years ago

@tknerr This didn't occur on our Windows CI machines during testing (2008, 2012, and 2012r2) and I'm not seeing it on my Windows 8 dev box.

We also don't depend on a x86-mingw32 version of anything, so I'm not sure where that's coming from. Do you have anything already installed in ~/.chefdk?

danielsdeleo commented 9 years ago

Is it possible you are using a different version of rubygems or bundler than is packaged with ChefDK? There were some improvements to rubygems platform selection recently that had some unintended effects (bugs) which tend to show up with errors similar to this, and are fixed by getting the correct versions of rubygems and bundler (I don't remember the specific version numbers off-hand but you can figure them out from the omnibus repo).

tknerr commented 9 years ago

@randomcamel yeah might be something specific to my setup. Good to know that you didn't see these.

@danielsdeleo switching from ChefDK 0.6.0 to 0.7.0 I noticed a bundler upgrade from 1.7.12 -> 1.10.0 (and was also running into bundler/bundler#3680 btw ;-)) but no rubygems upgrade (still 2.4.4)

So, I have nothing installed in ~/.chefdk.

This is what chef env says:

---
Chef Development Kit:
  ChefDK:
    ChefDK Version: 0.7.0
    ChefDK Home: C:\Repos\_github\bills-kitchen\target\build\home\.chefdk
    ChefDK Install Directory: C:/Repos/_github/bills-kitchen/target/build/tools/chefdk
    Policyfile Config:
      Cache Path: C:/Repos/_github/bills-kitchen/target/build/home/.chefdk/cache
      Storage Path: C:/Repos/_github/bills-kitchen/target/build/home/.chefdk/cache/cookbooks
  Ruby:
    Ruby Executable: C:/Repos/_github/bills-kitchen/target/build/tools/chefdk/embedded/bin/ruby.exe
    Ruby Version: 2.1.6
    RubyGems:
      RubyGems Version: 2.4.4
      RubyGems Platforms:
      - ruby
      - x86-mingw32
      Gem Environment:
        GEM ROOT: C:/Repos/_github/bills-kitchen/target/build/tools/chefdk/embedded/lib/ruby/gems/2.1.0
        GEM HOME: C:\Repos\_github\bills-kitchen\target\build\home\.chefdk/gem/ruby/2.1.0
        GEM PATHS:
        - C:\Repos\_github\bills-kitchen\target\build\home\.chefdk/gem/ruby/2.1.0
        - C:/Repos/_github/bills-kitchen/target/build/tools/chefdk/embedded/lib/ruby/gems/2.1.0
  Path:
  - C:/Repos/_github/bills-kitchen/target/build/tools/chefdk/bin
  - C:/Repos/_github/bills-kitchen/target/build/home/.chefdk/gem/ruby/2.1.0/bin
  - C:/Repos/_github/bills-kitchen/target/build/tools/chefdk/embedded/bin
  - C:\Repos\_github\bills-kitchen\target\build\tools\scripts
  - C:\Repos\_github\bills-kitchen\target\build\tools\docker
  - C:\Repos\_github\bills-kitchen\target\build\tools\chefdk\bin
  - C:\Repos\_github\bills-kitchen\target\build\home\.chefdk\gem\ruby\2.1.0\bin
  - C:\Repos\_github\bills-kitchen\target\build\tools\chefdk\embedded\bin
  - C:\Repos\_github\bills-kitchen\target\build\tools\consul
  - C:\Repos\_github\bills-kitchen\target\build\tools\packer
  - C:\Repos\_github\bills-kitchen\target\build\tools\terraform
  - C:\Repos\_github\bills-kitchen\target\build\tools\vagrant\HashiCorp\Vagrant\bin
  - C:\Repos\_github\bills-kitchen\target\build\tools\portablegit\cmd
  - C:\Repos\_github\bills-kitchen\target\build\tools\portablegit
  - C:\Repos\_github\bills-kitchen\target\build\tools\kdiff3
  - C:\Repos\_github\bills-kitchen\target\build\tools\cwrsync\cwRsync_5.4.1_x86_Free
  - C:\Repos\_github\bills-kitchen\target\build\tools\vagrant\HashiCorp\Vagrant\embedded\bin
  - C:\Repos\_github\bills-kitchen\target\build\tools\conemu
  - C:\Repos\_github\bills-kitchen\target\build\tools\atom\Atom\resources\cli
  - C:\Repos\_github\bills-kitchen\target\build\tools\atom\Atom\resources\app\apm\bin
  - C:\Repos\_github\bills-kitchen\target\build\tools\putty
  - C:\Program Files\Oracle\VirtualBox
...

And this is what gem list reports and should be 1:1 what ChefDK 0.7.0 preinstalls:

activesupport (4.2.3)
addressable (2.3.8)
app_conf (0.4.2)
appbundler (0.4.0)
archive (0.0.6)
aruba (0.8.1, 0.7.4)
ast (2.1.0)
astrolabe (1.3.1)
aws-sdk-v1 (1.64.0)
axiom-types (0.1.1)
berkshelf (3.2.4)
berkshelf-api-client (1.3.0)
bigdecimal (1.2.4)
buff-config (1.0.1)
buff-extensions (1.0.0)
buff-ignore (1.1.1)
buff-ruby_engine (0.1.0)
buff-shell_out (0.2.0)
builder (3.2.2)
bundler (1.10.0)
cane (2.6.2)
celluloid (0.16.0)
celluloid-io (0.16.2)
CFPropertyList (2.3.1)
chef (12.4.1 universal-mingw32)
chef-config (12.4.1)
chef-dk (0.7.0)
chef-provisioning (1.3.0)
chef-provisioning-aws (1.3.1)
chef-provisioning-azure (0.3.2)
chef-provisioning-fog (0.13.2)
chef-provisioning-vagrant (0.9.0)
chef-vault (2.6.1)
chef-zero (4.2.3, 1.5.6)
cheffish (1.3.1)
chefspec (4.3.0)
childprocess (0.5.6)
cleanroom (1.0.0)
codeclimate-test-reporter (0.4.7)
coderay (1.1.0)
coercible (1.0.0)
contracts (0.11.0)
cookbook-omnifetch (0.2.1)
countloc (0.4.0)
crack (0.4.2)
cucumber (2.0.2, 1.3.20)
cucumber-core (1.2.0)
dep-selector-libgecode (1.0.2)
dep_selector (1.0.3)
descendants_tracker (0.0.4)
diff-lcs (1.2.5)
diffy (3.0.7)
docile (1.1.5)
domain_name (0.5.24)
em-winrm (0.7.0)
equalizer (0.0.11)
erubis (2.7.0)
eventmachine (1.0.8)
excon (0.45.4)
fakefs (0.6.7)
faraday (0.9.1)
fauxhai (2.3.0)
ffi (1.9.10 x86-mingw32, 1.3.1 x86-mingw32)
ffi-yajl (2.2.2)
finstyle (1.5.0)
fission (0.5.0)
fog (1.33.0)
fog-atmos (0.1.0)
fog-aws (0.7.4)
fog-brightbox (0.8.0)
fog-core (1.32.1)
fog-dynect (0.0.1)
fog-ecloud (0.1.1)
fog-google (0.0.7)
fog-json (1.0.2)
fog-local (0.2.1)
fog-powerdns (0.1.1)
fog-profitbricks (0.0.5)
fog-radosgw (0.0.4)
fog-riakcs (0.1.0)
fog-sakuracloud (1.0.1)
fog-serverlove (0.1.2)
fog-softlayer (0.4.7)
fog-storm_on_demand (0.1.1)
fog-terremark (0.1.0)
fog-vmfusion (0.1.0)
fog-voxel (0.1.0)
fog-xml (0.1.2)
foodcritic (4.0.0)
formatador (0.2.5)
fuubar (1.3.3)
gherkin (2.12.2 x86-mingw32)
git (1.2.9.1)
grape (0.13.0)
grape-msgpack (0.1.2)
gssapi (1.2.0)
guard (2.13.0)
guard-compat (1.2.1)
guard-rspec (4.6.4)
gyoku (1.3.1)
hashie (2.1.2)
highline (1.7.3)
hitimes (1.2.2 x86-mingw32)
http (0.9.0)
http-cookie (1.0.2)
http-form_data (1.0.1)
http_parser.rb (0.6.0)
httpclient (2.6.0.1)
i18n (0.7.0)
ice_nine (0.11.1)
inflecto (0.0.2)
inifile (2.0.2)
io-console (0.4.3)
ipaddress (0.8.0)
json (1.8.3, 1.8.1)
kitchen-vagrant (0.18.0)
knife-spork (1.5.0)
knife-windows (0.8.6)
libyajl2 (1.2.0)
listen (3.0.3)
little-plugger (1.1.3)
logging (1.8.2)
lumberjack (1.0.9)
macaddr (1.7.1)
maruku (0.7.2)
metaclass (0.0.4)
method_source (0.8.2)
mime-types (2.6.1)
mini_portile (0.6.2, 0.6.0)
minitar (0.5.4)
minitest (5.8.0, 4.7.5)
mixlib-authentication (1.3.0)
mixlib-cli (1.5.0)
mixlib-config (2.2.1)
mixlib-install (0.7.0)
mixlib-log (1.6.0)
mixlib-shellout (2.1.0 universal-mingw32)
mocha (1.1.0)
molinillo (0.2.3)
moneta (0.6.0)
msgpack (0.5.12 x86-mingw32)
multi_json (1.11.2)
multi_test (0.1.2)
multi_xml (0.5.5)
multipart-post (2.0.0)
nenv (0.2.0)
net-http-persistent (2.9.4)
net-scp (1.2.1)
net-ssh (2.9.2)
net-ssh-gateway (1.2.0)
net-ssh-multi (1.2.1)
net-telnet (0.1.1)
nio4r (1.1.1)
nokogiri (1.6.6.2 x86-mingw32, 1.6.3.1 x86-mingw32)
nori (2.6.0)
notiffany (0.0.7)
octokit (3.8.0)
ohai (8.5.1)
paint (1.0.0)
parallel (1.6.1)
parser (2.2.2.6)
plist (3.1.0)
polyglot (0.3.5)
powerpack (0.1.1)
pry (0.10.1 i386-mingw32)
psych (2.0.5)
puma (1.6.3)
rack (1.6.4, 1.5.5)
rack-accept (0.4.5)
rack-mount (0.8.3)
rainbow (2.0.0)
rake (10.4.2, 10.1.0, 0.9.6)
rb-fsevent (0.9.5)
rb-inotify (0.9.5)
rdoc (4.1.0)
reel (0.5.0)
retryable (2.0.1)
ridley (4.2.0)
rspec (3.3.0, 3.0.0)
rspec-core (3.3.2, 3.0.4)
rspec-expectations (3.3.1, 3.0.4)
rspec-its (1.2.0)
rspec-mocks (3.3.2, 3.0.4)
rspec-support (3.3.0, 3.0.4)
rspec_junit_formatter (0.2.3)
rubocop (0.32.1, 0.31.0)
ruby-progressbar (1.7.5)
ruby_gntp (0.3.4)
rubyntlm (0.4.0)
rubyzip (1.1.7)
rufus-lru (1.0.5)
safe_yaml (1.0.4)
sawyer (0.6.0)
semverse (1.2.1)
serverspec (2.21.0)
sfl (2.2)
shellany (0.0.1)
simplecov (0.10.0)
simplecov-html (0.10.0)
slop (3.6.0)
solve (2.0.1, 1.2.1)
specinfra (2.40.2)
spork (0.9.2)
stuartpreston-azure-sdk-for-ruby (0.7.1)
syslog-logger (1.6.8)
systemu (2.6.5)
test-kitchen (1.4.2)
test-unit (2.1.6.0)
thor (0.19.1)
thread_safe (0.3.5)
timers (4.0.1)
treetop (1.4.15)
tzinfo (1.2.2)
ubuntu_ami (0.4.1)
unf (0.1.4)
unf_ext (0.0.7.1 x86-mingw32)
uuid (2.3.8)
uuidtools (2.1.5)
varia_model (0.4.0)
virtus (1.0.5)
webmock (1.21.0)
websocket_parser (1.0.0)
win32-api (1.5.3 universal-mingw32)
win32-dir (0.5.0)
win32-event (0.6.1)
win32-eventlog (0.6.3)
win32-ipc (0.6.5)
win32-mmap (0.4.1)
win32-mutex (0.4.2)
win32-process (0.7.5)
win32-service (0.8.6)
win32console (1.3.2 x86-mingw32)
windows-api (0.4.4)
windows-pr (1.2.4)
winrm (1.3.3)
winrm-s (0.3.1)
winrm-transport (1.0.2)
wmi-lite (1.0.0)
yajl-ruby (1.2.1)
yard (0.8.7.6)

Does that look plausible so far?

tknerr commented 9 years ago

Maybe I'm setting the environment wrong?

I'm in plain cmd.exe, no PowerShell, and set up my env like this:


set CHEFDKDIR=C:\Repos\_github\bills-kitchen\target\build\tools\chefdk
set CHEFDKHOMEDIR=C:\Repos\_github\bills-kitchen\target\build\home\.chefdk

:: Chef-DK embedded Ruby is now the primary one!
:: see: http://jtimberman.housepub.org/blog/2014/04/30/chefdk-and-ruby/
:: see: `chef shell-init powershell`
set GEM_ROOT=%CHEFDKDIR%\embedded\lib\ruby\gems\2.1.0
set GEM_HOME=%CHEFDKHOMEDIR%\gem\ruby\2.1.0
set GEM_PATH=%GEM_HOME%;%GEM_ROOT%
:: that's how the PATH entries are generated for chef shell-init
set PATH=%CHEFDKDIR%\bin;%CHEFDKHOMEDIR%\gem\ruby\2.1.0\bin;%CHEFDKDIR%\embedded\bin;%PATH%

:: also set the newly introduced (as of ChefDK 0.7.0) CHEFDK_HOME environment
set CHEFDK_HOME=%CHEFDKHOMEDIR%

(full details here)

That's intended to be pretty much analogous to what chef shell-init powershell would do path and env-var wise.

tknerr commented 9 years ago

Also what gem env says:

C:\Repos\_github\bills-kitchen\target\build>gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.4.4
  - RUBY VERSION: 2.1.6 (2015-04-13 patchlevel 336) [i386-mingw32]
  - INSTALLATION DIRECTORY: C:/Repos/_github/bills-kitchen/target/build/home/.chefdk/gem/ruby/2.1.0
  - RUBY EXECUTABLE: C:/Repos/_github/bills-kitchen/target/build/tools/chefdk/embedded/bin/ruby.exe
  - EXECUTABLE DIRECTORY: C:/Repos/_github/bills-kitchen/target/build/home/.chefdk/gem/ruby/2.1.0/bin
  - SPEC CACHE DIRECTORY: C:/Repos/_github/bills-kitchen/target/build/home/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: C:/ProgramData
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-mingw32
  - GEM PATHS:
     - C:/Repos/_github/bills-kitchen/target/build/home/.chefdk/gem/ruby/2.1.0
     - C:/Repos/_github/bills-kitchen/target/build/tools/chefdk/embedded/lib/ruby/gems/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:
     - C:\Repos\_github\bills-kitchen\target\build\tools\scripts
     - C:\Repos\_github\bills-kitchen\target\build\tools\docker
     - C:\Repos\_github\bills-kitchen\target\build\tools\chefdk\bin
     - C:\Repos\_github\bills-kitchen\target\build\home\.chefdk\gem\ruby\2.1.0\bin
     - C:\Repos\_github\bills-kitchen\target\build\tools\chefdk\embedded\bin
     - C:\Repos\_github\bills-kitchen\target\build\tools\consul
     - C:\Repos\_github\bills-kitchen\target\build\tools\packer
     - C:\Repos\_github\bills-kitchen\target\build\tools\terraform
     - C:\Repos\_github\bills-kitchen\target\build\tools\vagrant\HashiCorp\Vagrant\bin
     - C:\Repos\_github\bills-kitchen\target\build\tools\portablegit\cmd
     - C:\Repos\_github\bills-kitchen\target\build\tools\portablegit
     - C:\Repos\_github\bills-kitchen\target\build\tools\kdiff3
     - C:\Repos\_github\bills-kitchen\target\build\tools\cwrsync\cwRsync_5.4.1_x86_Free
     - C:\Repos\_github\bills-kitchen\target\build\tools\vagrant\HashiCorp\Vagrant\embedded\bin
     - C:\Repos\_github\bills-kitchen\target\build\tools\conemu
     - C:\Repos\_github\bills-kitchen\target\build\tools\atom\Atom\resources\cli
     - C:\Repos\_github\bills-kitchen\target\build\tools\atom\Atom\resources\app\apm\bin
     - C:\Repos\_github\bills-kitchen\target\build\tools\putty
     - C:\Program Files\Oracle\VirtualBox
...
tknerr commented 9 years ago

Installed Chef again into its default location C:\opscode\chefdk and tried again (btw this is on a Win7 64bit system)

First setting the evironment as chef shell-init would do:

C:\opscode\chefdk>set CHEFDKDIR=C:\opscode\chefdk

C:\opscode\chefdk>set CHEFDKHOMEDIR=C:\Users\tkn\.chefdk

C:\opscode\chefdk>set GEM_ROOT=%CHEFDKDIR%\embedded\lib\ruby\gems\2.1.0

C:\opscode\chefdk>set GEM_HOME=%CHEFDKHOMEDIR%\gem\ruby\2.1.0

C:\opscode\chefdk>set GEM_PATH=%GEM_HOME%;%GEM_ROOT%

C:\opscode\chefdk>set PATH=%CHEFDKDIR%\bin;%CHEFDKHOMEDIR%\gem\ruby\2.1.0\bin;%C
HEFDKDIR%\embedded\bin;%PATH%

C:\opscode\chefdk>set CHEFDK_HOME=%CHEFDKHOMEDIR%

The versions are reported correctly:

C:\opscode\chefdk>chef -v
Chef Development Kit Version: 0.7.0
chef-client version: 12.4.1
berks version: 3.2.4
kitchen version: 1.4.2

Also the environment looks ok:

C:\opscode\chefdk>chef env
---
Chef Development Kit:
  ChefDK:
    ChefDK Version: 0.7.0
    ChefDK Home: C:\Users\tkn\.chefdk
    ChefDK Install Directory: C:/opscode/chefdk
    Policyfile Config:
      Cache Path: C:/Users/tkn/.chefdk/cache
      Storage Path: C:/Users/tkn/.chefdk/cache/cookbooks
  Ruby:
    Ruby Executable: C:/opscode/chefdk/embedded/bin/ruby.exe
    Ruby Version: 2.1.6
    RubyGems:
      RubyGems Version: 2.4.4
      RubyGems Platforms:
      - ruby
      - x86-mingw32
      Gem Environment:
        GEM ROOT: C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0
        GEM HOME: C:\Users\tkn\.chefdk/gem/ruby/2.1.0
        GEM PATHS:
        - C:\Users\tkn\.chefdk/gem/ruby/2.1.0
        - C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0
  Path:
  - C:/opscode/chefdk/bin
  - C:/Users/tkn/.chefdk/gem/ruby/2.1.0/bin
  - C:/opscode/chefdk/embedded/bin
  - C:\opscode\chefdk\bin
  - C:\Users\tkn\.chefdk\gem\ruby\2.1.0\bin
  - C:\opscode\chefdk\embedded\bin
  - C:\ProgramData\Oracle\Java\javapath
  - C:\Program Files\Common Files\Microsoft Shared\Windows Live
  - C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live
  - C:\Program Files (x86)\Intel\iCLS Client\
  - C:\Program Files\Intel\iCLS Client\
  - C:\Windows\system32
  - C:\Windows
  - C:\Windows\System32\Wbem
  - C:\Windows\System32\WindowsPowerShell\v1.0\
  - C:\Program Files\Intel\Intel(R) Management Engine Components\DAL
  - C:\Program Files\Intel\Intel(R) Management Engine Components\IPT
  - C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL
  - C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT
  - C:\Program Files (x86)\Common Files\Acronis\SnapAPI\
  - C:\Program Files (x86)\Common Files\Adobe\AGL
  - C:\Program Files (x86)\Windows Live\Shared
  - C:\Program Files (x86)\Wave Systems Corp\bin\
  - C:\Program Files\Wave Systems Corp\Wave TSS\bin\
  - C:\Program Files (x86)\Enterprise Vault\EVClient\
  - C:\Program Files (x86)\Skype\Phone\
  - C:\Users\tkn\.babun
  - Y:\tools\babun-1.0.1\.babun

Now looking at chef verify everything looks good! :-)

C:\opscode\chefdk>chef verify
Running verification for component 'berkshelf'
Running verification for component 'test-kitchen'
Running verification for component 'chef-client'
Running verification for component 'chef-dk'
Running verification for component 'chef-provisioning'
Running verification for component 'chefspec'
Running verification for component 'rubocop'
Running verification for component 'fauxhai'
Running verification for component 'knife-spork'
Running verification for component 'kitchen-vagrant'
Running verification for component 'package installation'
Running verification for component 'openssl'
...............................................................
---------------------------------------------
Verification of component 'package installation' succeeded.
Verification of component 'chef-provisioning' succeeded.
Verification of component 'openssl' succeeded.
Verification of component 'chefspec' succeeded.
Verification of component 'rubocop' succeeded.
Verification of component 'fauxhai' succeeded.
Verification of component 'kitchen-vagrant' succeeded.
Verification of component 'berkshelf' succeeded.
Verification of component 'chef-client' succeeded.
Verification of component 'knife-spork' succeeded.
Verification of component 'test-kitchen' succeeded.
Verification of component 'chef-dk' succeeded.
tknerr commented 9 years ago

So sorry guys, there must be something wrong with my environment where I try to use chefdk outside of its default location. Not an issue here!

tknerr commented 9 years ago

So I found the root cause, but I don't fully understand it yet.

The reason it did not work was that in that specific environment (i.e. C:\Repos\_github\bills-kitchen\target\build\) I have a C:\Repos\_github\bills-kitchen\target\build\home\.bundle\config which sets BUNDLE_PATH: ~/.chefdk/gem/ruby/2.1.0.

Runnig bundle config clearly shows this:

C:\Repos\_github\bills-kitchen\target\build\>bundle config
Settings are listed in order of priority. The top value will be used.
path
Set for the current user (C:/Repos/_github/bills-kitchen/target/build/home/.bundle/config): "~/.chefdk/gem/ruby/2.1.0"

jobs
Set for the current user (C:/Repos/_github/bills-kitchen/target/build/home/.bundle/config): "16"

retry
Set for the current user (C:/Repos/_github/bills-kitchen/target/build/home/.bundle/config): "3"

mirror.https://rubygems.org/
Set for the current user (C:/Repos/_github/bills-kitchen/target/build/home/.bundle/config): "http://rubygems.org"

I'm doing this (i.e. setting BUNDLE_PATH: ~/.chefdk/gem/ruby/2.1.0) so that bundler will install to ~/.chefdk gems rather than clutter the chefdk installation.

So it makes sense to me that bundle install --local fails when the BUNDLE_PATH is set to a different directory where it won't find the chef-provisioning gem.

What I totally do not get though: why does it work with the modification in PR #471 ?!

charlesjohnson commented 8 years ago

This works great on Chefdk 0.15.15:

C:\dev > chef -v
Chef Development Kit Version: 0.15.15
chef-client version: 12.11.18
delivery version: 0.0.23 (bf89a6b776b55b89a46bbd57fcaa615c143a09a0)
berks version: 4.3.5
kitchen version: 1.10.0
C:\dev > chef verify
Running verification for component 'berkshelf'
Running verification for component 'test-kitchen'
Running verification for component 'tk-policyfile-provisioner'
Running verification for component 'chef-client'
Running verification for component 'chef-dk'
Running verification for component 'chef-provisioning'
Running verification for component 'chefspec'
Running verification for component 'generated-cookbooks-pass-chefspec'
Running verification for component 'rubocop'
Running verification for component 'fauxhai'
Running verification for component 'knife-spork'
Running verification for component 'kitchen-vagrant'
Running verification for component 'package installation'
Running verification for component 'openssl'
Running verification for component 'inspec'
Running verification for component 'delivery-cli'
Running verification for component 'git'
Running verification for component 'opscode-pushy-client'
Running verification for component 'chef-sugar'
Running verification for component 'knife-supermarket'
.....................................................................................................................................................................................................
---------------------------------------------
Verification of component 'package installation' succeeded.
Verification of component 'openssl' succeeded.
Verification of component 'berkshelf' succeeded.
Verification of component 'chef-client' succeeded.
Verification of component 'rubocop' succeeded.
Verification of component 'test-kitchen' succeeded.
Verification of component 'fauxhai' succeeded.
Verification of component 'inspec' succeeded.
Verification of component 'opscode-pushy-client' succeeded.
Verification of component 'tk-policyfile-provisioner' succeeded.
Verification of component 'chef-provisioning' succeeded.
Verification of component 'chef-sugar' succeeded.
Verification of component 'chefspec' succeeded.
Verification of component 'generated-cookbooks-pass-chefspec' succeeded.
Verification of component 'delivery-cli' succeeded.
Verification of component 'knife-supermarket' succeeded.
Verification of component 'chef-dk' succeeded.
Verification of component 'kitchen-vagrant' succeeded.
Verification of component 'knife-spork' succeeded.
Verification of component 'git' succeeded.
C:\dev >
brutuscat commented 7 years ago

@charlesjohnson this is not working for me...

I'm running rbenv on OSX and install ChefDK using cask.

Issue:

chef verify
Running verification for component 'berkshelf'
Running verification for component 'test-kitchen'
Running verification for component 'tk-policyfile-provisioner'
Running verification for component 'chef-client'
Running verification for component 'chef-dk'
Running verification for component 'chef-provisioning'
Running verification for component 'chefspec'
Running verification for component 'generated-cookbooks-pass-chefspec'
Running verification for component 'rubocop'
Running verification for component 'fauxhai'
Running verification for component 'knife-spork'
Running verification for component 'kitchen-vagrant'
Running verification for component 'package installation'
Running verification for component 'openssl'
Running verification for component 'inspec'
Running verification for component 'delivery-cli'
Running verification for component 'git'
Running verification for component 'opscode-pushy-client'
Running verification for component 'chef-sugar'
........Could not find gem 'chef-provisioning (= 2.0.2)' in any of the gem sources
listed in your Gemfile or available on this machine.

...........
---------------------------------------------
Verification of component 'test-kitchen' succeeded.
Verification of component 'chefspec' succeeded.
Verification of component 'rubocop' succeeded.
Verification of component 'knife-spork' succeeded.
Verification of component 'openssl' succeeded.
Verification of component 'delivery-cli' succeeded.
Verification of component 'opscode-pushy-client' succeeded.
Verification of component 'berkshelf' succeeded.
Verification of component 'chef-dk' succeeded.
Verification of component 'fauxhai' succeeded.
Verification of component 'inspec' succeeded.
Verification of component 'chef-sugar' succeeded.
Verification of component 'tk-policyfile-provisioner' succeeded.
Verification of component 'chef-provisioning' failed.
Verification of component 'kitchen-vagrant' succeeded.
Verification of component 'git' succeeded.
Verification of component 'chef-client' succeeded.
Verification of component 'package installation' succeeded.
Verification of component 'generated-cookbooks-pass-chefspec' succeeded.

Version:

chef -v
Chef Development Kit Version: 0.18.30
chef-client version: 12.14.89
delivery version: master (d86679335580be3de22996ef294b20d525889d8d)
berks version: 5.1.0
kitchen version: 1.13.2

Env:

chef env
---
Chef Development Kit:
  ChefDK:
    ChefDK Version: 0.18.30
    ChefDK Home: "/Users/mauroasprea/.chefdk"
    ChefDK Install Directory: "/opt/chefdk"
    Policyfile Config:
      Cache Path: "/Users/mauroasprea/.chefdk/cache"
      Storage Path: "/Users/mauroasprea/.chefdk/cache/cookbooks"
  Ruby:
    Ruby Executable: "/opt/chefdk/embedded/bin/ruby"
    Ruby Version: 2.3.1
    RubyGems:
      RubyGems Version: 2.6.6
      RubyGems Platforms:
      - ruby
      - x86_64-darwin-13
      Gem Environment:
        GEM ROOT: "/opt/chefdk/embedded/lib/ruby/gems/2.3.0"
        GEM HOME: "/Users/mauroasprea/.chefdk/gem/ruby/2.3.0"
        GEM PATHS:
        - "/Users/mauroasprea/.chefdk/gem/ruby/2.3.0"
        - "/opt/chefdk/embedded/lib/ruby/gems/2.3.0"
  Path:
  - "/opt/chefdk/bin"
  - "/Users/mauroasprea/.chefdk/gem/ruby/2.3.0/bin"
  - "/opt/chefdk/embedded/bin"
  - "/Users/mauroasprea/.rbenv/shims"
  - "/Users/mauroasprea/bin"
  - "/usr/local/sbin"
  - "/usr/local/bin"
  - "/usr/bin"
  - "/bin"
  - "/usr/sbin"
  - "/sbin"
  - "/opt/X11/bin"
  - "/opt/chefdk/gitbin"