如何在OpsWorks中查找IP地址
我对Ohai不太好。我想知道是否有任何方法可以通过Chef recipe从各自的子网中找到节点的所有ip地址(包括自己的)如何在OpsWorks中查找IP地址,ip,chef-infra,chef-recipe,aws-opsworks,devops,Ip,Chef Infra,Chef Recipe,Aws Opsworks,Devops,我对Ohai不太好。我想知道是否有任何方法可以通过Chef recipe从各自的子网中找到节点的所有ip地址(包括自己的) 我在AWS Opswork中创建了一个层,希望在配置文件中添加每个节点的ip地址和主机名。任何帮助都将不胜感激 因此,这取决于您是要获取层中的所有实例,还是要获取堆栈中的所有实例 首先,像这样的东西-未经测试配方代码应该有效: 请注意,这将为您获取私有dns名称-因此是OpsWorks网络的内部名称。您可能想要,也可能不想要——对象上有十几个其他属性,包括公共IP地址 如果
我在AWS Opswork中创建了一个层,希望在配置文件中添加每个节点的ip地址和主机名。任何帮助都将不胜感激 因此,这取决于您是要获取层中的所有实例,还是要获取堆栈中的所有实例 首先,像这样的东西-未经测试配方代码应该有效: 请注意,这将为您获取私有dns名称-因此是OpsWorks网络的内部名称。您可能想要,也可能不想要——对象上有十几个其他属性,包括公共IP地址 如果您想获得整个堆栈的实例,我打赌您可以循环通过
节点[:opsworks][:layers]
,就像我在这里循环通过实例一样。只是另一个循环
还要注意,此代码适用于Chef 11。在
如果您使用的是Chef 12,我找到了有关如何使用的文档 因此,这取决于您是要获取层中的所有实例,还是要获取堆栈中的所有实例 首先,像这样的东西-未经测试配方代码应该有效: 请注意,这将为您获取私有dns名称-因此是OpsWorks网络的内部名称。您可能想要,也可能不想要——对象上有十几个其他属性,包括公共IP地址 如果您想获得整个堆栈的实例,我打赌您可以循环通过
节点[:opsworks][:layers]
,就像我在这里循环通过实例一样。只是另一个循环
还要注意,此代码适用于Chef 11。在
如果您使用的是Chef 12,我找到了有关如何使用的文档 感谢Ryan为您提供的宝贵帮助和时间。我现在就试试,希望它能奏效!!感谢Ryan为您提供的宝贵帮助和时间。我现在就试试,希望它能奏效!!
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