vagrant - 如何加快我的 puppet 模块开发-测试周期?

标签 vagrant puppet

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

  1. Vagrant 起来
  2. 进行更改/修复
  3. Vagrant 供给
  4. 查找错误/错误,转到 2

在我克服了所有的错误之后:

  1. Vagrant 毁灭
  2. Vagrant 起来
  3. 确保一切正常
  4. 提交我的更改

这太慢了...我怎样才能使这个工作流程更快?
我否认为 puppet 编写测试。我还有哪些其他选择?

最佳答案

  • 使用 vagrant-cachier 在主机上缓存您的 apt/yum 存储库插件
  • 使用个人资料 –evaltrace 来查找您在哪些地方浪费了完整的时间 provisioning
  • 使用软件包基础发行版:
    • 例如:rvm install ruby​​-2.0.0 与使用 fpm 创建的预编译 ruby​​ 包
    • 避免“获取互联网并编译”方法
    • 这可能会让您的配置更多 reproducible而且速度更快。
  • 不要编写模块代码
    • 尝试重用 forge/github/... 中的一些内容
    • 请注意,这可能违背我之前的建议
  • 如果可以选择,升级您的 puppet/ruby 版本
  • 迭代并防止完全配置
    • Vagrant 起来
    • Vagrant 供给
    • 修改 list /模块
    • Vagrant 供给
    • 修改 list /模块
    • Vagrant 供给
    • Vagrant 毁灭
    • Vagrant 起来
    • 启动server-spec
  • 最小化键入的命令
    • 修改文件时启动命令
    • 您也许可以设置guard保存时启动 lint/test/spec/provision
    • 您还可以使用 vagrant-notify 将通知从访客发送到主机
  • 在 vagrant 中测试无需实际配置
  • 测试您的配置而不是手动检查
    • 停止vagrant ssh - 检查服务是否正在运行或配置是否具有给定值
    • 启动server-spec
    • 看看Beaker
  • 将测试委托(delegate)到您首选的 ci 服务器(jenkins、travis-ci...)
  • 如果您对 puppet 感到有点沮丧...看看 ansible
    • 易于设置(无需安装/编译 ruby​​)
    • 您可以选择要使用标签运行的部分内容
    • 您可以通过同步文件夹共享 playbook,并在本地 vagrant 框中运行 ansible(无需启动 librairian-puppet)

更新:与 @garethr 讨论后,看看他最后的presentation关于守卫。

关于vagrant - 如何加快我的 puppet 模块开发-测试周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21617545/

相关文章:

Vagrant 全局状态所有虚拟机的命名默认值

centos - 使用 Centos 7 的 Vagrant 上的 rsync 错误

puppet - Puppet 上的连接问题

ruby - 如何在 ruby​​ 模板中输出排序哈希

puppet - 如何使用 Puppet 需要另一个自定义类

virtual-machine - 如何在裸机上安装 Vagrant Box?

centos - 无法更改 vagrant 主文件夹中文件夹的权限

linux - git repo 问题相关的 puppet

puppet 重复声明: Class[Mongodb] is already declared; cannot redeclare

ubuntu - 我是否必须使用 SSH 来打开面向我的 Vagrant VM 的终端?