我们有一个像这样的设置: 在Linux和Windows 2k8服务器代理木偶大师。 构建系统编译代码(visual studio),并创建一个nuget包并将其上传到由版本号标识的nuget存储库。为了实现Continuos Delivery,我们使用puppet,并希望有一种机制可以使创建的新包自动部署到目标服务器。因此,无论何时客户端发生与主服务器的同步,它都会检查puppet主服务器上可用的新版本,以及是否有新版本将其部署到客户端。部署脚本是存在的,但我面临的问题是如何在每次构建发生后将版本号发送给puppet master,以及如何将其与客户端上部署的版本进行比较。使用木偶实现连续交付
回答
不知道你用于版本控制,但我们正在使用github。我们有存储木偶清单的木偶回购,然后我们有我们的软件回购,编码器开发该产品。我们使用此工具从github使用木偶回收来填充/ etc/puppet /环境:https://github.com/adrienthebo/r10k
在傀儡的体现正在下降,他们被分解成项目,例如/ etc/puppet/$ proj_qa/etc/puppet/$ proj_dev等。我们在puppet中设置了自定义模块,该代码将代码从我们的软件github中提取到每个服务器上。编码时的开发人员更新puppet repo中的提交代码。然后R10k根据更新的puppet git repo更新puppet服务器。我目前在我们的puppet服务器的crontab中每5分钟运行r10k。
每个puppet repo都有单独的分支,所以$ proj将会有dev,qa,prod等等,然后r10k可以设置它们,以便它们显示为独立的puppet环境。/etc/environment/goodproject_dev,/ etc/environment/goodproject_qa,/ etc/environment/goodproject_prod基于分支机构。
所以你有dev - >合并到Qa。 Qa测试一切,然后它可以合并到阶段产品等
花了几个月来设置我们的木偶环境和连续集成,所以不是真的可以在一个stackoverflow帖子中完全回答,但我希望你觉得这有帮助。
如果我理解你的问题,你正尝试将一个包部署到应用服务器。我假设你已经在包中部署了元数据文件中的版本号。创建两个木偶自定义fact,它引用客户端和主服务器上的版本号。将这些事实包含在你的模块中。让您的部署在运行时比较它们,并在安装的模块版本事实低于服务器事实时部署您的软件包。
- 1. 持续交付与capistrano /厨师/木偶:你在哪里存储你的文物?
- 2. 木偶 - 应用木偶类
- 3. 连续部署和交付
- 4. 持续交付使用Grails
- 5. 木偶,实现虚拟资源
- 6. 通用连续交付管道
- 7. 在木偶中使用因素事实
- 8. 连续部署/交付和安全
- 9. rpm使用木偶安装
- 10. 我想用码头做木偶实用
- 11. Twitter Bootstrap旋转木马 - 如何实现连续慢速滚动?
- 12. 持续交付方案 - 实施回滚
- 13. 木偶企业或木偶开源
- 14. 如何通过Jenkins和SVN实现持续交付
- 15. 替代Team Foundation Build以实现持续交付?
- 16. 结合Jenkins管道和UrbanCode Deploy实现持续交付?
- 17. 如何在连续交付中最好地使用Docker?
- 18. 木偶 - 如何提交表格
- 19. 木偶:如何提交表单?
- 20. 木偶EXEC链
- 21. 通过木偶
- 22. 与木偶
- 23. 通过木偶
- 24. 木偶减少
- 25. 木偶,在collectionVeiw
- 26. 连续交付 - 处理中间svn提交
- 27. 木偶现有目录到布尔
- 28. 木偶合成视图呈现集合
- 29. Openstack + Chef + Jenkins持续交付
- 30. Gitlab持续交付选项