Так что это немного зависит от того, хотите ли вы получить все экземпляры в слое или все общие экземпляры в вашем стеке.
Для первого, что-то вроде этого - непроверенный! - код для вашего рецепта должны работы:
my_layer_name = "my_database_layer_or_whatever"
node[:opsworks][:layers][my_layer_name][:instances].each do |current_instance, current_instance_data|
puts node[:opsworks][:layers][my_layer_name][:instances][current_instance][:private_dns_name]
end
Обратите внимание, что это получит вам личное имя Dns - так внутренний к сети OpsWorks. Вы можете или не захотите этого - на объекте есть еще дюжина других атрибутов, включая общедоступный IP-адрес.
Если вы хотите получить экземпляры для всего стека, я уверен, что вы могли бы пройти через node[:opsworks][:layers]
, так как я зациклил на экземпляры здесь. Еще один цикл.
Также обратите внимание: этот код предназначен для шеф-повара 11. В Chef 12 things have changed a bit.
Если вы используете Chef 12, я нашел документацию о том, как use/search the Chef Data Bags for OpsWorks.
Спасибо Райан за вашу ценную помощь и время. Я попробую сейчас, надеюсь, что это сработает !! –