Puppet开发:从旧模式到新工具与部署指南
1. 旧版Puppet模式
在早期Puppet版本中,存在一些独特的模式。Puppet 4引入数据类型之前,所有变量都是字符串,这导致很多比较和其他函数的结果可能很奇怪且不一致。例如,在历史代码中可能会看到对变量的奇怪处理以及对未定义变量的检查。最初,facter事实也被称为顶级变量,这容易与普通变量混淆,还可能导致意外覆盖,后来改为事实哈希。
平台基础设施也更复杂多样,有Rack或WEBrick配置选项。在Puppet代码的早期版本中,由于没有Puppet stdlib模块的file_line函数,无法管理文件的单行内容,这导致过度使用Augeas(一种可解析文件以进行操作的工具)和模板(允许使用条件逻辑和变量创建文件)。Augeas功能强大但常过于复杂且影响性能,而模板的过度使用会导致强制应用整个文件,而非仅所需的单行或设置。
在Hiera允许覆盖类参数之前,params.pp模式在模块中被大量使用。直到4.6版本才引入敏感数据类型,这使得在代码中安全处理机密数据变得困难。此外,最初的Puppet版本没有像Puppet 4引入的lambda函数那样的循环概念,因此在旧代码示例中可能会看到一些晦涩的模式来实现类似效果。
2. Puppet开发辅助工具
早期Puppet开发存在缺乏开发共识和集成的问题,在Puppet 5发布前后有了很大改变。以下是一些基于使用和经验的工具推荐:
- PDK :它是Puppet开发改进的核心,将创建模块、代码检查和测试等各种工具打包,可通过pdk命令运行。以前,Puppet开发人员需要收集工具、安装依赖并分别运行
超级会员免费看
订阅专栏 解锁全文
95

被折叠的 条评论
为什么被折叠?



