1
votes

I am working on Chef to automate a deployment procedures, I have configured everything on my Chef environment.

OS & Version details are as below
Chef Server - RHEL7
Chef Workstation - Windows 7 Professional
Chef node : Windows 2016 Server Datacenter


Chef Development Kit Version: 3.3.23
chef-client version: 14.5.33
berks version: 7.0.6
kitchen version: 1.23.2
inspec version: 2.2.112

Created a sample cookbook just to create a test.txt file in node where we are executing chef-client. Below is the files resource which we are using on recipe.

file 'C:\\temp\\something.txt' do
  rights :read, 'Everyone'
  #rights :full_control, 'DOMAIN\\User'
  action :create
end

Getting below error on running chef-client on remote node

Running handlers:
[2019-10-15T19:25:18+08:00] ERROR: Running exception handlers
Running handlers complete
[2019-10-15T19:25:18+08:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 15 seconds
[2019-10-15T19:25:18+08:00] INFO: Sending resource update report (run-id: 5ea7d4d4-2cd4-4456-bcf4-5458fbfdb31d)
[2019-10-15T19:25:19+08:00] FATAL: Stacktrace dumped to c:/chef/cache/chef-stacktrace.out
[2019-10-15T19:25:19+08:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2019-10-15T19:25:19+08:00] FATAL: NoMethodError: undefined method 'each_char' for ["bundle", "install"]:Array
Did you mean?  each_cons

I don't have much knowledge on ruby. attached stacktrace.out

1
I can tell you a bit about the bug. Chef is trying to run bundle install to install dependencies. It does this by passing the command to shell_out. In the docs for that it says "on windows, array args aren't supported [so] its up to the caller to join(" ") on arrays of strings." You're on windows, so it's supposed to pass the string "bundle install" but instead it's passing the array ["bundle", "install"]. It looks to me like a bug in Chef because somewhere it's supposed to convert the array into a string and isn't. Post it on their github.Max
Please do not link to external sites that host your code. If you have code that is relevant to your question then you must include it directly in your question.anothermh

1 Answers

0
votes

Thanks @anothermh , It was a ChefDK triage and was fixed on next update. Upgrading Chef DK and Chef-client to latest version fixed my issue