Vagrant 如何加快puppet模块开发测试周期?

Vagrant 如何加快puppet模块开发测试周期?,vagrant,puppet,Vagrant,Puppet,我正在寻找一些在编写新的puppet模块时如何提高生产率的最佳实践。我的工作流现在看起来像这样: 流浪汉 进行更改/修复 流浪准备金 查找错误/错误,转到2 在我克服所有错误后,我会: 流浪破坏 流浪汉 确保一切正常 提交我的更改 这太慢了。。。如何使此工作流更快? 我否认为puppet编写测试。我的其他选择是什么?我建议使用。它附带了一个命令行工具(puppetresources),可以计算计算机上的目录并让您检查它们。它有一些在Puppet中找不到的有用功能: 它真的很快(在单个目录上快6

我正在寻找一些在编写新的puppet模块时如何提高生产率的最佳实践。我的工作流现在看起来像这样:

  • 流浪汉
  • 进行更改/修复
  • 流浪准备金
  • 查找错误/错误,转到2
  • 在我克服所有错误后,我会:

  • 流浪破坏
  • 流浪汉
  • 确保一切正常
  • 提交我的更改
  • 这太慢了。。。如何使此工作流更快?
    我否认为puppet编写测试。我的其他选择是什么?

    我建议使用。它附带了一个命令行工具(
    puppetresources
    ),可以计算计算机上的目录并让您检查它们。它有一些在Puppet中找不到的有用功能:

    • 它真的很快(在单个目录上快6倍,在许多目录上大约快50倍)
    • 它跟踪每个资源的定义位置,以及此时的“类堆栈”是什么,当您有重复的资源时,这非常方便
    • 它会自动检查您引用的文件是否存在
    • 它比Puppet更严格(例如,在未定义的变量上中断)
    • 它允许您将任何文件的内容打印到标准输出,这对于开发复杂模板非常有用
    唯一需要注意的是,它只适用于“现代”木偶实践。例如,
    require
    未实现。它也只能在Linux上工作。

    • 使用插件在主机上缓存您的apt/yum存储库
    • 使用配置文件–evaltrace查找您全天的空闲时间
    • 使用包基础分发
      • 例如:
        rvm安装ruby-2.0.0
        与使用
      • 避免“上网并编译”的方法
      • 这可能会使您的资源调配更加快速
    • 不编码模块
      • 尝试重用forge/github/中的一些
      • 请注意,这可能与我之前的建议背道而驰
    • 如果这是一个选项,升级您的puppet/ruby版本
    • 迭代并防止完全配置
      • 流浪汉
      • 流浪准备金
      • 修改清单/模块
      • 流浪准备金
      • 修改清单/模块
      • 流浪准备金
      • 流浪破坏
      • 流浪汉
      • 发射
    • 最小化键入的命令
      • 在修改文件时启动命令
      • 您可以设置在保存时启动lint/test/spec/provision
      • 您还可以使用从来宾到主机发送通知
    • 测试而不在流浪者中实际提供
      • (重构模块时非常理想)
    • 测试您的资源调配而不是手动检查
      • 停止检查服务是否正在运行或配置是否具有给定值
      • 发射
      • 看看
    • 将运行测试的任务委托给您首选的ci服务器(jenkins,travis ci,…)
    • 如果你被木偶迷住了。。。看一看
      • 易于安装(无需安装/编译ruby)
      • 您可以选择要使用标记运行的部分内容
      • 您可以通过同步文件夹共享剧本,并在本地“流浪者”框中运行ansible(无需启动图书馆木偶)

    更新:与讨论后,查看docker最近关于guard的内容。

    查看docker是否无法提高性能或简化测试: