我有一组服务器执行特定角色,它们之间存在依赖关系,即
web server -> application server -> database server
我有可以使用这些角色构建节点的Chef cookbook。我使用Chef生成每个节点的hosts文件,并使用hosted Chef Server。到现在为止还挺好。我无法理解的是如何灵活地表示具有不同角色的节点之间的关系。
灵活地说,我的意思是在开发中我可能只有一个节点可以完成所有三个角色,而在登台和生产环境中,每个角色至少会分成一个节点。
我不清楚如何参数化主机文件的生成以满足此要求。其他人如何处理这个问题?
提前致谢。
答案 0 :(得分:2)
您是否有厨师服务器设置/托管厨师?
Chef在每个聚合上运行一个名为ohai
的工具,它收集有关节点的所有信息(例如IP地址,接口,存储,包数据)并将其写入node
对象。当融合完成时,chef-client会将节点对象数据上传到将存储它的chef-server,并可供所有其他节点/客户端搜索:
手动:http://docs.chef.io/chef_search.html
取决于您如何拆分舞台,例如使用不同的厨师环境,使用标签或一些自定义逻辑,您可以动态构建/etc/hosts
文件,使用搜索重新配置负载平衡器和防火墙规则。示例:https://serverfault.com/questions/412127/chef-recipe-read-attributes-from-another-node
如果您没有使用基于Chef-Server的设置,则无法进行此操作。你必须手动"描述"您的基础架构/拓扑,例如在数据包或属性中。