2013-05-30 13 views
5

posso attualmente recuperare un attributo di un nodo alla volta tramite knife search node simili:coltello: ottenimento di due (o più) attributi in uno andare

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 

voglio recuperare due attributi contemporaneamente tramite un'unica invocazione , qualcosa del genere:

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

Naturalmente, questo non funziona, si ottiene solo un attributo. Dal momento che non ho quasi nessuna conoscenza di chef/coltello, qualcuno potrebbe farmi sapere come farlo, o qualche altro modo per raggiungere questo obiettivo.

risposta

4

Ho iniziato a studiare come scrivere il mio plugin per coltelli, ma era eccessivo. knife exec risolto questo problema piuttosto elegante e semplice:

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

ed è facile estendere questo al maggior numero di attributi, come richiesto - semplicemente continuare ad aggiungere n [ATTRIB] alla chiusura..

Problemi correlati