2015-12-29 6 views
1

Я не очень хорошо знаком с Ohai. Я хотел бы знать, есть ли способ узнать все IP-адреса (включая собственные) узлов из соответствующей подсети через рецепт шеф-повара.Как найти IP-адреса в OpsWorks

Я создал один слой в AWS Opswork и хочу добавить ip addr и hostname каждого узла в файл конфигурации. Любая помощь будет высоко оценена.

ответ

0

Так что это немного зависит от того, хотите ли вы получить все экземпляры в слое или все общие экземпляры в вашем стеке.

Для первого, что-то вроде этого - непроверенный! - код для вашего рецепта должны работы:

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.

+0

Спасибо Райан за вашу ценную помощь и время. Я попробую сейчас, надеюсь, что это сработает !! –