2016-10-25 93 views
0

AWS opswork可以将码头工人部署到集群,ECS(ec2容器服务)也是如此。 EC2中的服务发现可以通过weave.net或consul等实现......当我们使用opsworks进行docker部署时,有关如何添加动态服务发现的任何建议,所以在我的Docker容器中,我可以轻松获得终点其他Web服务部署?AWS opsworks码头服务发现

回答

0

内部配方中可以使用搜索,使您可以使用search(:node)在当前堆栈内搜索opsworks实例。该方法返回厨师节点的数组:

> search(:node) 
=> [#<Chef::Node:0x000000070a44c8 
    @attributes= 
    {"aws_opsworks_instance_id"=>"----", 
    "hostname"=>"--", 
    "os"=>"linux", 
    "platform"=>"ubuntu", 
    "platform_family"=>"debian", 
    "ipaddress"=>"172.31.85.144", 
    "fqdn"=>"---.localdomain", 
    "domain"=>"localdomain", 
    "network"=>{"interfaces"=>{"aws_opsworks_virtual"=>{"addresses"=>{"172.31.85.144"=>{"family"=>"inet"}}}}}, 
    "kernel"=>{"machine"=>"x86_64"}, 
    "cloud"=> 
    {"public_ips"=>["0.0.0.0"], 
     "private_ips"=>["172.31.85.144"], 
... 

你可以得到所有IP在Opsworks与

> search(:node).map(&:ipaddress) 
=> ["172.31.85.144", "172.31.85.31", "172.31.85.16"] 

堆栈中,然后就可以通过这个列表,经由ENV变量泊坞窗的资源。