【问题标题】:How to find IP addresses in OpsWorks如何在 OpsWorks 中查找 IP 地址
【发布时间】:2016-04-03 05:00:30
【问题描述】:

我不擅长 Ohai。我想知道是否有任何方法可以通过 Chef 配方从各个子网中找出所有节点的 IP 地址(包括自己的)。

我在 AWS Opswork 中创建了一层,并想在配置文件中添加每个节点的 ip addr 和 hostname。任何帮助将不胜感激。

【问题讨论】:

    标签: ip chef-infra chef-recipe aws-opsworks devops


    【解决方案1】:

    所以这在一定程度上取决于您是要获取 layer 中的所有实例,还是要获取堆栈中的所有总实例。

    首先,像这样的东西 - 未经测试! - 您的食谱代码应该工作:

    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],因为我已经遍历了这里的实例。只是另一个循环。

    另请注意,此代码适用于 Chef 11。在 Chef 12 things have changed a bit

    如果您使用的是 Chef 12,我找到了有关如何use/search the Chef Data Bags for OpsWorks 的文档。

    【讨论】:

    • 感谢 Ryan 的宝贵帮助和时间。我现在就试试,希望能成功!!
    猜你喜欢
    • 2016-05-05
    • 1970-01-01
    • 2014-06-24
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    相关资源
    最近更新 更多