我正在寻找一些关于如何在编写新的 puppet 模块时提高工作效率的最佳实践。我的工作流程现在看起来像这样:
- Vagrant 起来
- 进行更改/修复
- Vagrant 供给
- 查找错误/错误,转到 2
在我克服了所有的错误之后:
- Vagrant 毁灭
- Vagrant 起来
- 确保一切正常
- 提交我的更改
这太慢了...我怎样才能使这个工作流程更快?
我否认为 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 中测试无需实际配置
- rspec puppet (重构模块时的理想选择)
- 测试您的配置而不是手动检查
- 停止
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/