Шеф-повар немедленно бросает Mixlib :: ShellOut :: CommandTimeout на powershell_script - PullRequest
0 голосов
/ 10 октября 2018

Я испытываю повторяющуюся, но случайную ошибку.Иногда это работает, но чаще всего я получаю тайм-аут на очень простом powershell_script ресурсе.Похоже, что шеф-повар не ждет установленного по умолчанию таймаута (3600 секунд), но немедленно выдает это исключение.Есть что-то, чего я здесь не хватает?Как я могу отладить Mixlib::ShellOut::CommandTimeout?

 ================================================================================
 Error executing action `run` on resource 'powershell_script[uninstall]'
 ================================================================================

 Mixlib::ShellOut::CommandTimeout
 --------------------------------
 command timed out:
 ---- Begin output of "C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NonInteractive -NoProfile -ExecutionPolicy Bypass -InputFormat None -File "C:/Users/vagrant/AppData/Local/Temp/chef-script20180924-2936-1r1bagl.ps1" ----                                                                     
 STDOUT: 
 STDERR: 
 ---- End output of "C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NonInteractive -NoProfile -ExecutionPolicy Bypass -InputFormat None -File "C:/Users/vagrant/AppData/Local/Temp/chef-script20180924-2936-1r1bagl.ps1" ----                                                                       

 ProcessId: 1664
 app_name: C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
 command_line: "C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NonInteractive -NoProfile -ExecutionPolicy Bypass -InputFormat None -File "C:/Users/vagrant/AppData/Local/Temp/chef-script20180924-2936-1r1bagl.ps1"                                                                                 
 timeout: 3600

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

   7: powershell_script "uninstall" do
   8:   only_if { ::File.exist?('C:\Documents\scripts\Uninstall.ps1') }
   9:   code <<-SCRIPT
  10:   "Trying to uninstall...."
  11:   . C:\\Documents\\scripts\\Uninstall.ps1 > C:\\Documents\\Uninstall.log
  12:   SCRIPT
  13: end
  14: 

1 Ответ

0 голосов
/ 13 октября 2018

Какую версию Chef вы используете конкретно?

Хотя, если вы хотите отладить, я думаю, попытка передать вашу команду непосредственно в Mixlib::ShellOut.new(cmd, :timeout => 3600) - хорошая отправная точка.

Однако, после того, как я немного погуглил, я только что обнаружил, что у ресурса powershell были некоторые проблемы, такие как https://github.com/chef/mixlib-shellout/issues/86, https://github.com/chef/chef/issues/2348,, поэтому не уверен, что они были исправлены в более новой версии и т. Д.

Следовательно, альтернативное решение, которое следует рассмотреть, - это использование сценария dsc с Chef (то есть https://docs.chef.io/resource_dsc_script.html с https://docs.microsoft.com/en-us/powershell/dsc/scriptresource), который, я думаю, может быть более надежным.

...