全球与本地人偶管理


8

有没有人曾经用Puppet管理过几个地理上分散的系统?

我有几个几乎完全相似的部署(服务器IP除外),我希望将其转换为Puppet。

我有2个选择:

  • 让每个部署托管它自己的PuppetMaster以提供本地配置,然后以某种方式同步PuppetMaster(可能再次与puppet同步)

  • 在AWS EC2上托管PuppetMaster以实现高可用性,并从单点为所有部署提供配置

有没有人尝试过第二种选择,以及如何解决?我对这种环境下的高可用性性能特别感兴趣。

谢谢。

Answers:


7

您建议的任何一种方法都没有错。我们有三个人偶大师,都位于一个站点上,并为世界各地的节点服务-我们根据连接的人偶节点是否在dev / test / prod中进行分离。其他人则更喜欢在每个地理区域经营人偶大师。其他人有很多人偶,有些人只能管理一个节点!

关键是,在版本控制系统中存储和管理puppetmaster清单树至关重要 -像对待公司维护的任何其他代码一样对待它。我建议使用Git,但如果您更习惯于Subversion,它也可以解决问题。puppetmaster仅仅是提供其VCS特定视图的服务,而不是本身的中央数据库。

将您的内容放在VCS中之后,您便可以将所需的清单/模块部署到相应的人偶大师中,并轻松地使其保持同步。惯例似乎是针对每个人偶模块都有一个git / svn repo / module,尽管没有什么阻止您将整棵树放在一个repo / module下。

我对您的问题是:

  • 每个部署中有多少个节点?如果您谈论的是50岁以上,那么肯定值得拥有一个本地人偶大师。
  • 除贵公司外,部署中是否还有其他使用它们的第三方?人偶管理员必须具有很高的安全性-将其视为所有系统门的钥匙,并将包含非常敏感的信息。
  • 同样,对于基于部署的PM,您是将它们托管在它们自己的服务器/ VM上,还是需要给现有的计算机执行任务?为了安全起见,我强烈建议puppetmaster服务器单独扮演该角色。
  • 您如何期望EC2为您提供更高的可用性?据我了解,EC2实例不是HA,尽管应该可以在AWS负载均衡器服务之后运行2个以上的puppetmasters。
  • 部署有很大不同吗?您要在一天的不同时间更改它们吗?多个人偶管理员可以为您提供更好的控制级别。

1
你好 我们说每个部署中最多约10-20个节点,这些部署在世界范围内。部署内不允许有第三方。我实际上有兴趣将所有与Puppet相关的数据集中在专用计算机上,因此PM将托管在EC2实例上。我可能会为HA使用Heartbeat + DRBD。部署基本上是相同的设备,因为只是服务器IP是不同的。再次感谢。
SyRenity 2010年

听起来非常像EC2中的一个puppetmaster集群可能会为您解决问题。只要确保您使用Git或Subversion安全地存储清单即可:)
Mike Pountney 2010年

2

您还可以使用此处描述的方案,使用带有分布式VCS(例如Git)的无Puppetmaster的系统:

http://bitfieldconsulting.com/scaling-puppet-with-distributed-version-control


如果没有puppetmaster,则您将失去对storedconfigs的支持,这是Puppet最强大的功能之一。考虑一下内置在更新中的跨计算机信息收集;例如,你可以约上所有正在运行的服务(木偶管理)主机产生防火墙规则,路由规则,监控CONFIGS,基于拉的备份等自动收集信息
大卫·加德纳

是的,这很公平。当然,运行完整的基于Puppetmaster的系统有很多好处,通常我会这样做。我可以看到这样的情况,尽管这样的轻量级基于VCS的系统很有用。
约翰·阿伦德尔

如果您选择无主设置,则可以这样做,并设置puppetmaster服务器仅用于接收来自制造商的库存-那时它不必很高。
timurb

0

我们还有许多人偶大师,我们在不同的环境中进行同步。为此,我们在subversion中管理所有的人偶模块和清单,然后使用常规人偶清单和名为vcsdeploy的模块将人偶模块部署到人偶大师上,该模块执行检出操作:

http://www.practicalclouds.com/content/guide/pclouds-vcsdeploy-deploy-stuff

当我们想要同步时,我们标记一个版本,然后更新人偶主文件的nodes.pp。

问候

戴夫

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.