sous-chefs / powershell

Development repository for the powershell cookbook
https://supermarket.chef.io/cookbooks/powershell
Apache License 2.0
110 stars 88 forks source link

powershell5 upgrade exits with '5' #112

Closed ttdgcp closed 7 years ago

ttdgcp commented 7 years ago

Cookbook version

6.1.0

Chef-client version

12.21.3

Platform Details

Windows Server 2012 R2

Scenario:

Run powershell:powershell5 recipe to upgrade from WMF 4 -> WMF 5.1.

Steps to Reproduce:

Include powershell cookbook into existing cookbook, add include_recipe "powershell::powershell5", run kitchen converge.

Expected Result:

WMF 5.1 install to complete successfully with no reboot.

Actual Result:

It appears that the installation is exiting with exit code 5, which seems to be access denied. If I run the msu manually, it completes the installation successfully with no error. Having a hard time tracking down the root cause, but should be very easily reproducible.

================================================================================
Error executing action `install` on resource 'windows_package[Windows Management Framework Core 5.1]'
================================================================================

Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0, 42, 127, 3010, 2359302], but received '5'
---- Begin output of start "" /wait "c:\users\vagrant\appdata\local\temp\kitchen\cache\package\win8.1andw2k12r2-kb3191564-x64.msu"   /quiet /norestart & exit %%%%ERRORLEVEL%%%% ----
STDOUT:
STDERR:
---- End output of start "" /wait "c:\users\vagrant\appdata\local\temp\kitchen\cache\package\win8.1andw2k12r2-kb3191564-x64.msu"   /quiet /norestart & exit %%%%ERRORLEVEL%%%% ----
Ran start "" /wait "c:\users\vagrant\appdata\local\temp\kitchen\cache\package\win8.1andw2k12r2-kb3191564-x64.msu"   /quiet /norestart & exit %%%%ERRORLEVEL%%%% returned 5

Resource Declaration:
---------------------
# In C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/powershell/recipes/powershell5.rb

57:     windows_package 'Windows Management Framework Core 5.1' do # ~FC009
58:       source node['powershell']['powershell5']['url']
59:       checksum node['powershell']['powershell5']['checksum']
60:       installer_type :custom
61:       options '/quiet /norestart'
62:       timeout node['powershell']['powershell5']['timeout']
63:       action :install
64:       returns [0, 42, 127, 3010, 2_359_302]
65:       # Note that the :immediately is to immediately notify the other resource,
66:       # not to immediately reboot. The windows_reboot 'notifies' does that.
67:       notifies :reboot_now, 'reboot[powershell]', :immediately if node['powershell']['installation_reboot_mode'] != 'no_reboot'
68:       not_if { ::Powershell::VersionHelper.powershell_version?(node['powershell']['powershell5']['version']) }
69:     end
70:
71:   else
72:     Chef::Log.warn("PowerShell 5.0 is not supported on this version of Windows: #{node['platform_version']}")
73:   end
74:

Compiled Resource:
------------------
# Declared in C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/powershell/recipes/powershell5.rb:57:in `from_file'

windows_package("Windows Management Framework Core 5.1") do
 package_name "Windows Management Framework Core 5.1"
 action [:install]
 retries 0
 retry_delay 2
 default_guard_interpreter :default
 declared_type :windows_package
 cookbook_name "powershell"
 recipe_name "powershell5"
 source "https://download.microsoft.com/download/6/F/5/6F5FF66C-6775-42B0-86C4-47D41F2DA187/Win8.1AndW2K12R2-KB3191564-x64.msu"
 checksum "a8d788fa31b02a999cc676fb546fc782e86c2a0acd837976122a1891ceee42c0"
 installer_type :custom
 options "/quiet /norestart"
 timeout 600
 returns [0, 42, 127, 3010, 2359302]
 not_if { #code block }
end

System Info:
------------
chef_version=12.21.3
platform=windows
platform_version=6.3.9600
ruby=ruby 2.3.1p112 (2016-04-26 revision 54768) [x64-mingw32]
program_name=C:/opscode/chef/bin/chef-client
executable=C:/opscode/chef/bin/chef-client

[2017-08-09T12:49:55-07:00] INFO: Running queued delayed notifications before re-raising exception

Running handlers:
[2017-08-09T12:49:55-07:00] ERROR: Running exception handlers
Running handlers complete
[2017-08-09T12:49:55-07:00] ERROR: Exception handlers complete
Chef Client failed. 1 resources updated in 40 seconds
[2017-08-09T12:49:55-07:00] FATAL: Stacktrace dumped to C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/chef-stacktrace.out
[2017-08-09T12:49:55-07:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2017-08-09T12:49:55-07:00] FATAL: Mixlib::ShellOut::ShellCommandFailed: windows_package[Windows Management Framework Core 5.1] (powershell::powershell5 line 57) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0, 42, 127, 3010, 2359302], but received '5'
---- Begin output of start "" /wait "c:\users\vagrant\appdata\local\temp\kitchen\cache\package\win8.1andw2k12r2-kb3191564-x64.msu"   /quiet /norestart & exit %%%%ERRORLEVEL%%%% ----
STDOUT:
STDERR:
---- End output of start "" /wait "c:\users\vagrant\appdata\local\temp\kitchen\cache\package\win8.1andw2k12r2-kb3191564-x64.msu"   /quiet /norestart & exit %%%%ERRORLEVEL%%%% ----
Ran start "" /wait "c:\users\vagrant\appdata\local\temp\kitchen\cache\package\win8.1andw2k12r2-kb3191564-x64.msu"   /quiet /norestart & exit %%%%ERRORLEVEL%%%% returned 5


Mixlib::ShellOut::ShellCommandFailed: windows_package[Windows Management Framework Core 5.1] (powershell::powershell5 line 57) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0, 42, 127, 3010, 2359302], but received '5'
---- Begin output of start "" /wait "c:\users\vagrant\appdata\local\temp\kitchen\cache\package\win8.1andw2k12r2-kb3191564-x64.msu"   /quiet /norestart & exit %%%%ERRORLEVEL%%%% ----
STDOUT: 
STDERR: 
---- End output of start "" /wait "c:\users\vagrant\appdata\local\temp\kitchen\cache\package\win8.1andw2k12r2-kb3191564-x64.msu"   /quiet /norestart & exit %%%%ERRORLEVEL%%%% ----
Ran start "" /wait "c:\users\vagrant\appdata\local\temp\kitchen\cache\package\win8.1andw2k12r2-kb3191564-x64.msu"   /quiet /norestart & exit %%%%ERRORLEVEL%%%% returned 5
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/mixlib-shellout-2.2.7-universal-mingw32/lib/mixlib/shellout.rb:289:in `invalid!'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/mixlib-shellout-2.2.7-universal-mingw32/lib/mixlib/shellout.rb:276:in `error!'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/mixin/shell_out.rb:118:in `shell_out!'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider/package/windows/exe.rb:56:in `install_package'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider/package/windows.rb:137:in `install_package'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider/package.rb:114:in `block (3 levels) in <class:Package>'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider/package.rb:272:in `multipackage_api_adapter'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider/package.rb:113:in `block (2 levels) in <class:Package>'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/mixin/why_run.rb:52:in `add_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider.rb:176:in `converge_by'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider/package.rb:112:in `block in <class:Package>'
(eval):2:in `block in action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider.rb:361:in `instance_eval'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider.rb:361:in `compile_and_converge_action'
(eval):2:in `action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider/package/windows.rb:131:in `action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider.rb:145:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/client.rb:715:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/client.rb:710:in `catch'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/client.rb:710:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/client.rb:749:in `converge_and_save'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/client.rb:286:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application.rb:277:in `run_with_graceful_exit_option'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application.rb:253:in `block in run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/local_mode.rb:44:in `with_server_connectivity'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application.rb:236:in `run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application/client.rb:464:in `sleep_then_run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application/client.rb:451:in `block in interval_run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application/client.rb:450:in `loop'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application/client.rb:450:in `interval_run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application/client.rb:434:in `run_application'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application.rb:59:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/bin/chef-client:26:in `<top (required)>'
C:/opscode/chef/bin/chef-client:68:in `load'
C:/opscode/chef/bin/chef-client:68:in `<main>'

>>>> Caused by Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0, 42, 127, 3010, 2359302], but received '5'
---- Begin output of start "" /wait "c:\users\vagrant\appdata\local\temp\kitchen\cache\package\win8.1andw2k12r2-kb3191564-x64.msu"   /quiet /norestart & exit %%%%ERRORLEVEL%%%% ----
STDOUT: 
STDERR: 
---- End output of start "" /wait "c:\users\vagrant\appdata\local\temp\kitchen\cache\package\win8.1andw2k12r2-kb3191564-x64.msu"   /quiet /norestart & exit %%%%ERRORLEVEL%%%% ----
Ran start "" /wait "c:\users\vagrant\appdata\local\temp\kitchen\cache\package\win8.1andw2k12r2-kb3191564-x64.msu"   /quiet /norestart & exit %%%%ERRORLEVEL%%%% returned 5
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/mixlib-shellout-2.2.7-universal-mingw32/lib/mixlib/shellout.rb:289:in `invalid!'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/mixlib-shellout-2.2.7-universal-mingw32/lib/mixlib/shellout.rb:276:in `error!'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/mixin/shell_out.rb:118:in `shell_out!'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider/package/windows/exe.rb:56:in `install_package'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider/package/windows.rb:137:in `install_package'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider/package.rb:114:in `block (3 levels) in <class:Package>'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider/package.rb:272:in `multipackage_api_adapter'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider/package.rb:113:in `block (2 levels) in <class:Package>'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/mixin/why_run.rb:52:in `add_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider.rb:176:in `converge_by'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider/package.rb:112:in `block in <class:Package>'
(eval):2:in `block in action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider.rb:361:in `instance_eval'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider.rb:361:in `compile_and_converge_action'
(eval):2:in `action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider/package/windows.rb:131:in `action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/provider.rb:145:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/client.rb:715:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/client.rb:710:in `catch'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/client.rb:710:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/client.rb:749:in `converge_and_save'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/client.rb:286:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application.rb:277:in `run_with_graceful_exit_option'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application.rb:253:in `block in run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/local_mode.rb:44:in `with_server_connectivity'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application.rb:236:in `run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application/client.rb:464:in `sleep_then_run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application/client.rb:451:in `block in interval_run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application/client.rb:450:in `loop'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application/client.rb:450:in `interval_run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application/client.rb:434:in `run_application'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/lib/chef/application.rb:59:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.3-universal-mingw32/bin/chef-client:26:in `<top (required)>'
C:/opscode/chef/bin/chef-client:68:in `load'
C:/opscode/chef/bin/chef-client:68:in `<main>'```
stuartpreston commented 7 years ago

Hi @ttdgcp - you don't post your kitchen.yml but I would guess you aren't running in elevated mode as System. Unfortunately there are a few issues preventing installation of .NET Framework and other installers when connecting via WinRM in this scenario.

I used the following settings in my .kitchen.yml (which should most closely replicate how you would usually have Chef configured for normal usage):

    transport:
      name: winrm
      elevated: true
      elevated_username: SYSTEM
      elevated_password:

Please let me know if this resolves the issue.

ttdgcp commented 7 years ago

Hi @stuartpreston. This did the trick! I appreciate you taking the time to share this with me.

stuartpreston commented 7 years ago

Great, you're welcome!