[chef] Need help on printing output console from a command on the chef run


Chronological Thread 
  • From: Kimly < >
  • To:
  • Subject: [chef] Need help on printing output console from a command on the chef run
  • Date: Thu, 1 May 2014 14:53:05 -0700 (PDT)

Hi,

I have a chef block code like this:

execute "Test to capture log" do
  command "powershell.exe -executionpolicy Bypass -command \"&
C:\\vagrant\\test.ps1\""
end

The test.ps1 will print out to the console something, while also logging it to
a log file.
When I do vagrant provision, how can I display what test.ps1 prints out at the
ON-GOING chef run?

I see that the 'execute' doesn't print out anything if it runs successfully,
otherwise it will shell out the error AT THE END OF THE RUN.

I also tried Chef::Mixin::ShellOut:

ruby_block "Running windows finishing script" do
  block do
    require 'chef/mixin/shell_out'
    extend Chef::Mixin::ShellOut
    Chef::Log.info "This will take a while to complete. Sit back and have some
beer."
    results = shell_out "powershell.exe -executionpolicy Bypass -command \"&
C:\\vagrant\\test.ps1\""
    Chef::Log.info "Output: #{ results.stdout }"
  end
end

And again, it still didn't print out anything until the end of the run.

My actual ps1 will install several middleware applications, takes about 10 
mins
to complete, so I try to print out the output console while it's running to
show its progress.

Any help will be very appreciated. 

~Kimly



Archive powered by MHonArc 2.6.16.

§