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
bundle install
to install dependencies. It does this by passing the command toshell_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