- 缓存您的主机上的apt / yum存储库使用vagrant-cachier插件
- 使用个人资料 -evaltrace查找您在provisioning
上花费时间的地方
- 使用包基分发:
- 例如:
rvm install ruby-2.0.0
与使用fpm 创建的pre-compiled ruby package
- 避免“wget the internet and compile”方法
- 这可能会使您的配置更加reproducible并且速度更快。
- 不编码模块
- 尝试重用forge / github / ...
中的一些
- 请注意,这可能违反我之前的建议
- 如果这是一个选项,升级你的puppet / ruby 版本
- 迭代并阻止完全配置
- vagrant up
- 流浪汉条款
- 修改清单/模块
- 流浪汉条款
- 修改清单/模块
- 流浪汉条款
- vagrant destroy
- vagrant up
- 启动server-spec
- 最小化键入的命令
- 在vagrant中测试而不实际配置
- 测试您的配置而不是手动检查
- 委托将测试运行到您首选的 ci服务器(jenkins,travis-ci,...)
- 如果你有点傀儡......请看看ansible
- 易于设置(无需安装/编译ruby)
- 您可以选择要使用标记运行的部分内容
- 你可以通过同步文件夹分享剧本,并在当地的流浪盒中运行ansible(没有librairian-puppet可以启动)
更新:在与@garethr讨论后,请查看他关于警卫的最新presentation。
我建议使用language-puppet。它附带了一个命令行工具(puppetresources
),可以在您的计算机上计算目录并让您检查它们。它有一些在Puppet中找不到的有用功能:
- 它非常快(单个目录上快6倍,许多目录上的50倍)
- 它跟踪每个资源的定义位置,以及那时的“类堆栈”,当你有重复的资源时非常方便
- 它会自动检查您引用的文件是否存在
- 它比Puppet更严格(例如,在未定义的变量上打破)
- 它允许您将任何文件的内容打印到标准输出,这对于开发复杂模板很有用
唯一需要注意的是,它只适用于“现代”木偶实践。例如,require
未实现。它也只适用于Linux。