我的环境(Graphite)如下所示:
我想使用Chef在EC2中设置和部署此环境,而无需单独创建每个工作服务器,获取其IP并将其设置为中继菜谱中的属性,创建该中继,获取IP,将其设置为Web服务器菜谱中的属性等
有没有办法使用厨师,我可以确保在不必手动设置IP的情况下正确部署,配置和运行环境?特别是,我希望能够添加一个工作服务器并让中继更新其工作列表,或者将中继服务器交换为另一个服务器,并让Web服务器相应地更新其引用。
也许这不是Chef的目的,更多的是针对每服务器的配置和部署,如果是这样的话,什么是促进这一点的技术呢?
答案 0 :(得分:2)
您需要的是:
我最近写了一篇文章How to Run Dynamic Cloud Tests with 800 Tomcats, Amazon EC2, Jenkins and LiveRebel。它涉及负载均衡器安装,负载均衡器必须知道它所平衡的服务器的所有IP地址。您可以查看recipe of balanced node,它如何查找loadbalancer:
search(:node, "roles:lr-loadbalancer").first
并查看loadbalancer recipe,它如何查找所有平衡节点并更新apache配置文件:
lr_nodes = search(:node, "role:lr-node")
template ::File.join( node[:apache2][:home], 'conf.d', 'httpd-proxy-balancer.conf' ) do
mode 0644
variables(:lr_nodes => lr_nodes)
notifies :restart, 'service[apache2]'
end
答案 1 :(得分:1)