我才刚刚开始使用Puppet。示例演练和教程很好地帮助我理解了Puppet的用处和基本工具集,但我很难对整个堆栈进行概念化。即使是advanced tutorial似乎也没有给我一个需要发生什么的清晰画面。
有没有什么完整的rails堆栈的例子可以让我学习?
发布于 2011-04-28 01:35:00
很难找到完整堆栈的示例。但是,您应该能够找到管理其中一些特定示例的模块示例。一个问题是,创建一个抽象了所有特定于站点的假设的模块可能会有很多额外的工作,而且是真正的跨平台。
http://forge.puppetlabs.com/是人们希望共享的模块的规范位置。通过快速扫描,我找到了用于nginx、varnish和postgres的模块。
您需要从Puppet Best Practices开始进行基本设置。
在此基础上,您将(至少)需要一个用于nginx、varnish、thin、postgres、memcached、redis的模块和一个site模块(可能以您的站点命名)。
在您的nodes.pp中,每个系统都有一个相当简单的角色分配。(“包含角色”)
在您的"site“模块中,您需要为每个系统角色创建一个子类(我假设您将拥有多组服务器,并且在一组服务器中,它们应该彼此基本相同。我还假设您可能包含以上多项内容)。您可能还需要一个site::class变量类(或类似的类),用于存储跨多个其他模块或类可能需要的内容(如角色中的服务器列表、密码等)。最佳实践似乎是将这些site::role放在名称更像s_role的/services辅助模块区域中,因此您可能希望遵循这种命名/放置方案。这些角色类将包括那些角色、调用定义等所需的实际组件的类。
对于你提到的6个组件中的每一个,你都会有一个模块。在该模块中,您可能希望拥有类似于"server“和"client”的子类。可能还有第三个类包含在客户端和服务器端,用于两者所需的东西(通用库等)。在server子类中,定义设置特定的实例(虚拟主机、数据库等)。(如果它绝对只是一个服务器,也许可以跳过这个级别的子类化)。
所以,举个例子:
建模
如果组件模块保持相当独立(和可重用),并且角色类是发生更多特定于站点的配置的地方,这是最好的,但如果您的组件模块包含一些特定于站点的内容,这并不是世界末日。
https://stackoverflow.com/questions/5784264
复制相似问题