2013-01-06 18 views
5

Jeśli mamy w Chef kodu cookbook jak:Vagrant - jak wydrukować dane wyjściowe polecenia szefa kuchni na stdout?

if !File.exists?('/vagrant/project/target/project/WEB-INF") || node[:compile_project] 
    bash "build project" do 
    user "vagrant" 
    cwd "/vagrant/project" 
    code <<-EOH 
     mvn clean 
     mvn db-migration:migrate 
     mvn package 
    EOH 
    end 
end 

Po uruchomieniu vagrant up widzimy tylko krótką informację, że „build” jest wykonywany.

Jednak jeśli uruchomimy polecenie 'mvn package' z terminala, zobaczymy pełne wyjście polecenia. Jak powiedzieć Vagrant/Chef, aby pokazać pełną moc?

EDIT:

Próbowałem tego, ale nic się nie zmieniło w wyjściu.

config.vm.provision :chef_solo do |chef| 
    chef.log_level = :debug 
+0

Dobra, myślę, że odpowiedź brzmi: nie. Jeśli skrypt działa, dane wyjściowe pozostają ukryte. Jednak jednym (niezwykle) hackowskim sposobem na to może być dodanie atrybutów 'zwraca 2' i' ignore_failure', które zawodzą za każdym razem. Otrzymasz pełny wynik po awarii. Jednak używałbym tej techniki tylko do debugowania. I prześlij żądanie funkcji do opscodu. – quandrum

+0

Czy próbowałeś użyć opcji "flags", aby zasób bash przekazał "-x"? – agross

Odpowiedz

2

Drukuje bash/script/execute wyjście wykonania zasobów na stdout tylko wtedy, gdy:

  • Trzeba TTY do polecenia zdalnego kucharz-Solo/Chef-klienta.
  • nie uruchomić Chef-klienta w trybie demona
  • poziom dziennika kucharz jest ustawiony na :debug

Zobacz code chef/Mixin/ShellOut, line 36.

Podczas korzystania vagrant up, wydaje się, nie ma opcji, aby zapewnić TTY dla sesji ssh, więc rozwiązanie jest rodzaj chodzić po :debug poziomu dziennika kucharz ustawić:

  1. prowadzony $ vagrant up
  2. prowadzony $ vagrant ssh -- -t - co oznacza, że ​​przekazuje on komendę ssh -t, dzięki czemu istnieje sesja tty dla sesji ssh.
  3. Uruchom chef-solo, aby ręcznie uruchomić szefa kuchni, wtedy otrzymasz wyjście na standardowe wyjście.
3

Nie wiem nic na temat włóczęgi, ale myślę, że może to odnosić się do problemu ... Z przyjemnością usuwam tę odpowiedź, jeśli okaże się ona nieistotna!

--force-formatter

Wskazuje, że wyjście formater zostaną wykorzystane zamiast wyjścia rejestratora.

Więc znalazłem jeśli solo.rb ma log_location określonym dodanie opcji --force-formatter Wyświetla obraz generowany podczas pracy kucharza lub zdalnie poprzez Rundeck wykonywania ssh [email protected] "chef-solo --force-formatter"

+2

Dzięki za podpowiedź, udało mi się uzyskać włóczęgę, aby wyprowadzić wynik całego szefa kuchni z "szefem kuchni".arguments = '--force-formatter'' w części szefa Vagrantfile! – jedifans

Powiązane problemy