首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用puppet实现持续交付

使用puppet实现持续交付
EN

Stack Overflow用户
提问于 2013-12-18 20:40:22
回答 2查看 219关注 0票数 0

我们有一个类似这样的设置: linux和windows2k8服务器代理上的傀儡主机。构建系统编译代码(visual studio),创建一个nuget包并将其上载到nuget存储库,该库由版本号标识。为了实现持续交付,我们正在使用puppet,并希望有一种机制,其中创建的新包应该自动部署到目标服务器。因此,每当客户端与主机发生同步时,它都会检查傀儡主机上有哪些新版本可用,如果有新版本,则将其部署到客户端。部署脚本是存在的,但我面临的问题是如何在每次构建后将版本号提供给puppet master,以及如何将其与客户端上部署的版本进行比较。

EN

回答 2

Stack Overflow用户

发布于 2013-12-18 22:33:56

不确定您使用的是什么版本控制,但我们使用的是github。我们有存储木偶清单的puppet代码库,然后我们有我们的软件代码库,程序员可以在其中开发产品。我们使用此工具使用github:https://github.com/adrienthebo/r10k中的木偶存储库填充/etc/ puppet /环境。

在即将下来的puppet清单中,它们被分解为项目,例如/ etc / puppet /$proj_qa /etc/puppet/$proj_dev等。我们在puppet中设置了自定义模块,这些模块根据提交将代码从我们的软件github拉到每个服务器上。开发人员在编码时更新傀儡代码库中的提交代码。然后,R10k基于更新的傀儡git存储库更新傀儡服务器。我在我们的puppet服务器上的crontab中每隔5分钟左右运行一次r10k。

每个傀儡代码库都有独立的分支,因此$proj会有dev、qa、prod等,那么r10k所做的就是将它们设置为独立的傀儡环境,例如/ etc /environment/goodproject、/etc/environment/goodproject、/etc/environment/goodproject等。

所以你有dev ->合并到Qa。Qa测试一切,然后它可以合并到阶段生产等。

我们花了几个月的时间来设置我们的傀儡环境和持续集成,所以不是真正可以在stackoverflow帖子中完全回答的事情,但我希望这对你有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2014-01-24 02:35:05

如果我理解您的问题,您正在尝试将包部署到应用程序服务器。我假设您在与包一起部署的元数据文件中有版本号。创建两个puppet自定义fact,它们引用客户端和主服务器上的版本号。在你的模块中包含这些事实。让您的部署在运行时对它们进行比较,如果安装的模块版本事实低于您的服务器事实,则部署您的包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20658505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档