2013-05-30 6 views
5
gehen

I noch ein Attribut eines Knotens zu einem Zeitpunkt über knife search node wie diese abrufen kann:Messer: zwei (oder mehr) zu erhalten Attribute in einem

über einen einzigen Aufruf
knife search node "chef_environment:production AND name:i-7a421114" -a cloud.public_hostname 
# RESULT: 
i-7a421114: 
cloud.public_hostname: ec2-104-214-107-198.compute-1.amazonaws.com 

knife search node "chef_environment:production AND name:i-7a421114" -a cloud.local_hostname 
# RESULT: 
i-7a421114: 
cloud.local_hostname: ip-10-60-146-201.ec2.internal 

Ich möchte, gleichzeitig zwei Attribute abrufen , so etwas wie dieses:

knife search node "chef_environment:production AND name:i-7a421114" -a cloud.public_hostname -a cloud.local_hostname 

natürlich ist dies nicht funktioniert, nur ein Attribut erhalten wird. Da ich fast kein Koch/Messer-Wissen habe, könnte mir jemand sagen, wie man das macht, oder eine andere Möglichkeit, dies zu erreichen.

Antwort

4

Ich fing an zu schauen, wie man mein eigenes Messerplugin schreibt, aber das war Overkill. knife exec lösten dieses Problem eher elegant und einfach:

knife exec -E 'nodes.find(:name => "i-7a421114") { |n| puts "#{n.cloud.public_hostname} - #{n.cloud.local_hostname}" }' 

Und es ist einfach, dies viele Attribute wie zu verlängern je nach Bedarf - hält einfach n Zugabe [ATTRIB] zur Schließung..