2017-03-22 2 views
0

Ich arbeite mit Chef und Test Kitchen, ich habe einige Probleme bei der Installation von Apache 2.2 und ich las das Kochbuch mit meinem Rezept (https://github.com/sous-chefs/apache2/blob/master/recipes/default.rb), ich würde gerne wissen, wie dieses Rezept funktioniert wenn Apache installiert und ich einige Variablen drucken möchte, wenn ich mein Rezept starten:Drucken vars mit Test Kitchen - Chef

node['platform_family'] 
node['platform_version'] 

Ein Beispiel von Chef offiziellen doc:

Chef::Log.fatal('You did not accept the license (set node["splunk"]["accept_license"] to true)') 

Aber ich schreibe in meinem Rezepte:

Chef::Log.info('PERSONAL-LOG,node["platform_family"]') 

Ich bekomme das Protokoll, aber genau mit dem gleichen Text, den ich schreibe, kann ich nicht verketten oder die var direkt aufrufen.

Kann mir jemand helfen?

Antwort

2

Es ist ein Fall von Ruby-String-Interpolation, bitte verwenden Sie es als: -

Chef::Log.info("PERSONAL-LOG, #{node['platform_family']}") 

http://ruby-for-beginners.rubymonstas.org/bonus/string_interpolation.html

+0

ich mit dieser Methode weder konnte, aber ich finde etwas einfacher: legt Knoten [ 'platform_family'] Probleme zu finden ist in Ordnung. –

+0

Chef Logging Anruf machen Sie das Protokoll als Teil des Kochs ausgeführt, aber eine einfache Puts wird zur Kompilierzeit selbst ausdrucken. Beide sind gut. Können Sie erklären, was Sie gerade tun? Sie können auch verweisen: - http://stackoverflow.com/questions/38984083/how-do-i-get-log-output-in-test-kitchen –

Verwandte Themen