是否可以使用Puppet设置,使用JClouds在云上实例化新虚拟机,然后通过Puppet定义和实现其配置(软件堆栈)?
或者Puppet的本质是否存在一些阻止其在AWS,RackSpace或Heroku等云提供商上使用的东西?
答案 0 :(得分:6)
这里涉及两个独立的问题:在云节点上引导木偶并在它们之间进行编排(例如,使用数据库的IP地址配置应用服务器)。
对于自举,有很多工具可用; AWS CloudFormation可以使用用户数据进行集成,CloudInit(默认在Ubuntu,ec2-linux AMI和许多EL图像上)支持开箱即用的bootpet。 Puppetlabs提供cloud provisioner,最后有Cloudify。 除CloudFormation和Cloudify之外,大多数工具在引导后都不管理您的堆栈,也不提供编排。 CloudFormation本身只提供启动时编排,而且非常蹩脚。在编排方面缺乏Puppet(例如,与Chef的优秀搜索功能相比)
Cloudify通过Puppet集成模块提供持续的堆栈管理和花哨的编排。这使您能够在节点之间传递信息(用于服务发现,凭据分发等),并使用一个命令引导整个系统。此外,它支持大多数云存在。
答案 1 :(得分:5)
Puppet是配置云基础架构的绝佳选择,大多数云提供商允许您在首次启动时调用脚本(Ec2具有用户数据),您可以使此脚本插入一些节点类型数据然后克隆一个木偶仓库和应用它,如果你不想运行木偶主服务(这可能是设置和维护的麻烦),你也可以使用git推送配置更新,甚至生成配置更改的新图像以允许快速节点启动与您最新的设置。看看这个blog
答案 2 :(得分:0)
我知道的唯一直接宣布puppet + jclouds集成的开源工具是Apache Whirr,但主要是通过puppet apply vs服务器。
由于木偶现在有一个restful interface,应该可以像在chef那样在jclouds中创建本机木偶支持。欢迎您提供帮助define that:)
与此同时,您可以使用whirr或工艺指令之类的东西,并在节点创建期间通过jclouds TemplateOptions.runScript将其作为shell脚本提供,或者稍后使用submitScriptOnNode命令(两者都是目前通过ssh运行。