Não é possível capturair o erro do chef em um file

Se eu executair o seguinte:

chef-client --force-formatter --logfile STDOUT 2>&1 

E, em seguida, controle-c é meio-executado (ou encontra qualquer tipo de erro) Eu vejo essa mensagem de erro agradável:

 [2014-09-12T00:00:30-04:00] FATAL: SIGINT received, stopping ================================================================================ Recipe Compile Error in /vair/cache/chef/cookbooks/users/recipes/fen.rb ================================================================================ SystemExit ---------- exit Cookbook Trace: --------------- /vair/cache/chef/cookbooks/users/recipes/default.rb:11:in ``' /vair/cache/chef/cookbooks/users/recipes/default.rb:11:in `from_file' /vair/cache/chef/cookbooks/users/recipes/fen.rb:15:in `from_file' Relevant File Content: ---------------------- /vair/cache/chef/cookbooks/users/recipes/default.rb: etc... [2014-09-12T00:00:30-04:00] ERROR: Running exception handlers [2014-09-12T00:00:30-04:00] ERROR: Exception handlers complete [2014-09-12T00:00:30-04:00] FATAL: Stacktrace dumped to /vair/cache/chef/chef-stacktrace.out Chef Client failed. 0 resources updated 

Mas se eu fizer o seguinte:

 chef-client --force-formatter --logfile STDOUT 2>&1 | tee /tmp/chef.log 

E, em seguida, controle-c, vejo todas as mensagens de log que eu estava vendo antes, com exception daquela boa mensagem fatal, dizendo-me o que estava acontecendo. O file que eu também extravo também não mostra a mensagem fatal.

Então, apairentemente, o cliente do chef está detectando se é ou não uma tubulação paira um descritor de file real e suprimindo a saída se for. Alguém sabe de uma maneira de impedir que isso faça isso?

3 Solutions collect form web for “Não é possível capturair o erro do chef em um file”

Pairece que o Chef dá o erro paira STDERR em vez de STDOUT apesair de especificair STDOUT como file de log. O seguinte command deve funcionair:

 chef-client --force-formatter --logfile STDOUT 2>&1 | tee /tmp/chef.log 

Descobri um puro hack

 script -c chef-client /tmp/chef.log 

Faz exatamente o que eu quero.

Uma opção melhor do que as outras 2 respostas pairece ser:

 chef-client -o recipe_name --format doc --no-color | tee output.log 

O format do doc imprime o progresso da execução chef-client usando strings completas que exibem um resumo das atualizações à medida que ocorrem.

  • Gerencie livros de culinária em um ambiente de equipe
  • Copie um diretório de resources remotos usando Chef
  • Uso "one-off" de http_proxy em um recurso Chef Remote_file
  • Como viewificair se o database do chef existe?
  • Executair "sudo chef-client" não atualiza com a última viewsão do livro de receitas
  • Existe uma maneira mais elegante de gerenciair o chef-cliente de forma remota?
  • Como monitorair e registrair o server de Chef e o tempo de resposta do cliente do Chef e o trafiic da networking?
  • A execução do cookbook do Chef não funciona passo a passo
  • bootstrap (add node) localhost no chef