如果您曾经被某个插件升级破坏了某些功能,那么您一定已经对这个问题有所考虑:Jenkins插件升级策略应该是什么?您如何在部署变更之前测试变更?

有没有人试过运行虚拟作业的测试实例来测试新版本,还是只是祈祷升级版本不会破坏任何内容?

评论

您是说让金斯的团队政策还是您(组织的)政策?

在升级之前,我将对Jenkins节点进行快照,然后对其进行测试。根据我的经验,詹金斯从来都不是关键任务组件。如果由于某个插件升级使它“故障”了15分钟,则通常不会以任何方式阻止生产,因此可以接受手动干预。当然,如果不是您这种情况(并且Jenkins必须为100%HA),那不是正确的方法。

@DanCornilescu我的组织政策,因为这是针对我们内部Jenkins服务器的

@AssafLavie这在很大程度上取决于Jenkins的运行方式:独立服务器,VM,docker容器,kubernetes pod(我们的情况)。拍摄当前状态的快照以按原样还原可能并不容易。在我们的案例中,我们可以克隆保存Jenkins数据的EBS卷,但这是将容器和数据卷都恢复到特定状态的手动且耗时的过程。

嗨,@ MichaelPereira,如果以下两个答案中的任何一个都解决了您的问题,请考虑通过选中对勾来接受它。这向更广泛的社区表明您已经找到了解决方案,并为答题者和您自己赢得了一定声誉。没有义务这样做。如果您不满意,请随时与作者联系。

#1 楼

根据我工作所在公司的政策,我们拥有开发人员,预生产环境和生产环境(某些服务上的开发人员可能会丢失)。以及新版本preprod-> tests-> validation-> prod的路径。

在我们的案例中,preprod中的工作非常繁琐,足以确保在prod中实现时我们无需祈祷: )

注意:我们使用svn维护和交付配置。我们不会就地进行更改。

评论


您如何维护不同Jenkins服务器的配置?手动吗?

–迈克尔·佩雷拉(Michael Pereira)
17-2-28在17:26

我们使用svn维护和交付配置。我们不会就地进行更改

–罗密欧·尼诺夫(Romeo Ninov)
17-2-28在17:27

我觉得这还不能完全回答问题。此答案描述了如何部署更改,但没有描述如何通过部署管道测试更改。

– Jayhendren
18年2月19日在20:12

#2 楼

我们需要一个100%HA Jenkins环境。我们通常会升级插件/ Jenkins本身。

如果升级后版本中断,这会造成很大的麻烦。

最安全的排序方式实际上是获得Demo Jenkins设置。也许在同一台使用多个Tomcat应用程序的计算机上,您可以实现这种便宜。

我们所做的是创建一个单独的(Demo)VM,并在Demo VM上复制了产品设置。在更改/升级任何东西之前,我们将对两个虚拟机进行快照。然后,我们将在演示VM上测试升级。如果效果良好,请在Prod上进行更改。

如果有人对您计划的插件有任何问题,我想您可以查找社区(例如SE / SO)。

#3 楼

我总是会在使用各自插件的每个相关项目/分支上,至少在最近的一个绿色标签(或几乎绿色标签)上手动触发一两次重新运行,并检查是否得到相同的结果。只是为了安全起见。

任何结果差异都需要进行调查以确定它们是否由插件更新引起。也许新旧插件都可以重新运行?

评论


好没问题。

–丹·科尼莱斯库(Dan Cornilescu)
17年3月15日在20:08

从过去的经验来看,我的意见通常并不那么受欢迎,因此总的来说,如果可能的话,我倾向于避免引起人们的注意:)我也不熟悉mod工具。但我不介意提供帮助,尤其是在需要时-我对该网站寄予厚望。

–丹·科尼莱斯库(Dan Cornilescu)
17 Mar 16 '17 at 0:04