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