【发布时间】:2012-11-10 01:49:38
【问题描述】:
我想先说我是 puppet 的新手。我一直在通过vagrant 使用它,并且开始觉得编写清单很舒服,但我可能缺乏可以回答我的问题的经验或直觉。
我试图掌握 puppet 的作用域以及画线的位置。我对这如何应用于模块及其创建和使用特别感兴趣。
一个更具体的例子:puppletlabs-nginx 模块。因此,假设我正在愉快地进行,为给定的服务器角色创建清单;说这是一个非常简单的静态文件网络服务器,我想使用nginx。该模块显然会帮助我解决这个问题;有try_files 支持等等。我什至可以通过这个模块升级到反向代理。但是,如果事情变得更加棘手怎么办?如果我想以编程方式做一些我不能用模块做的事情怎么办?
好吧,也许简短的回答是自己修复它,提出拉取请求,然后按照我的快乐方式行事。但这在哪里停止?社区木偶模块的目标是支持给定软件包的各个方面吗?这似乎无法控制。另一方面,这不是创建了一堆完全基于用例构建的模块吗?
然后,有一个与 Android UI 类似的例子:我认为大多数 XML UI 定义都有 setter 方法。在木偶中,如果感觉相似。您可以通过编程方式构建配置文件,或者通过填写 ERB 模板来创建它。换句话说,我觉得 puppet 中的配置文件的程序化创建和配置文件的模板化创建之间的界限是模糊的;我发现 Android 没有最好的方法,所以我不知道哪个是 puppet 的方法。
那么,问题来了:什么是理想的 puppet 模块?它应该更多地依赖模板吗?在清单上?是否应该考虑所有配置场景?
从更偏僻的角度来看,我似乎想要一些更有主见的东西。 Puppet 的强大之处似乎在于灵活性和抽象性,但现有的模块感觉不一致且不够充实。
感谢阅读...
【问题讨论】:
-
您的担忧似乎反映了那些切换到Chef的人。
-
一定看过Chef;目前还没有调查。能举个例子吗?
标签: puppet