保持两个詹金斯服务器同步
Keeping two jenkins server in sync
我有
- 一个普通的 jenkins master jettysburg:8888/jenkins,
- 和一个故障转移 jenkins master jettyperry:8888/jenkins.
我打算用mercurial来保持两个master的jobs目录同步
通常,大多数时候,新作业和构建是在 jettysburg:8888 定义和执行的。然后我需要将 jettyperry:8888 与 jettysburg:8888 中发生的任何事情同步,我计划每天执行一次推送。
这意味着,在故障转移到 jettyperry:8888 之后,推送将执行相反的方向。
为此,我一直在为我的 non-programming/coding 文件(如 word、excel 和文本文件)使用 mercurial,作为对我的 [=30= 执行增量和冗余备份的一种方式] 文件,以及对它们进行版本控制。
我也希望依靠 mercurial 来退出对 jenkins 作业所做的更改。
使用 mercurial 同步两个 Jenkins master 是个好主意吗?有没有更好的方法让两个 Jenkins 服务器保持同步?在这种情况下,我只同步作业树。
只要您不需要在服务器之间共享作业状态(它们 运行 在它们自己的小宇宙中)并且您使用某种形式的版本在两个 Jenkins 服务器上保留相同的插件模块和库保留实际作业定义的控件很好。
我的办公室用 git 做这件事。我们有一组开发和生产的 jenkins 服务器。我们维护一个基础 linux 图像,其中包含 jenkins 安装和所有必要的模块,并在本地安装库(如 nodejs 等)。然后我们启动图像实例并下拉作业。
可能具有挑战性的一件事是使诸如凭据和 Jenkins 配置设置之类的东西保持同步——您可能需要将它们保留为基础映像的一部分。
如果您需要作业队列持久化和共享(如主-主设置),您可以查看这个插件,它允许多个 jenkins 主控共享同一个作业队列:https://wiki.jenkins-ci.org/display/JENKINS/Gearman+Plugin
有两种方法:
与其采用热备份解决方案,不如考虑集群主服务器,这样您就可以获得主动-主动解决方案。你可能想看看 https://wiki.jenkins-ci.org/display/JENKINS/Gearman+Plugin。这可以帮助您聚集一堆大师,所以一个失败应该不是问题。
考虑 运行 容器上的 Jenkins,并将 jenkins 项目目录外部化为 NFS 中的外部卷,这样当一个容器出现故障时您可以启动另一个容器 - 保留两个容器 运行 将是并发写入的挑战(如果有的话)。
希望对您有所帮助。
我有
- 一个普通的 jenkins master jettysburg:8888/jenkins,
- 和一个故障转移 jenkins master jettyperry:8888/jenkins.
我打算用mercurial来保持两个master的jobs目录同步
通常,大多数时候,新作业和构建是在 jettysburg:8888 定义和执行的。然后我需要将 jettyperry:8888 与 jettysburg:8888 中发生的任何事情同步,我计划每天执行一次推送。
这意味着,在故障转移到 jettyperry:8888 之后,推送将执行相反的方向。
为此,我一直在为我的 non-programming/coding 文件(如 word、excel 和文本文件)使用 mercurial,作为对我的 [=30= 执行增量和冗余备份的一种方式] 文件,以及对它们进行版本控制。
我也希望依靠 mercurial 来退出对 jenkins 作业所做的更改。
使用 mercurial 同步两个 Jenkins master 是个好主意吗?有没有更好的方法让两个 Jenkins 服务器保持同步?在这种情况下,我只同步作业树。
只要您不需要在服务器之间共享作业状态(它们 运行 在它们自己的小宇宙中)并且您使用某种形式的版本在两个 Jenkins 服务器上保留相同的插件模块和库保留实际作业定义的控件很好。
我的办公室用 git 做这件事。我们有一组开发和生产的 jenkins 服务器。我们维护一个基础 linux 图像,其中包含 jenkins 安装和所有必要的模块,并在本地安装库(如 nodejs 等)。然后我们启动图像实例并下拉作业。
可能具有挑战性的一件事是使诸如凭据和 Jenkins 配置设置之类的东西保持同步——您可能需要将它们保留为基础映像的一部分。
如果您需要作业队列持久化和共享(如主-主设置),您可以查看这个插件,它允许多个 jenkins 主控共享同一个作业队列:https://wiki.jenkins-ci.org/display/JENKINS/Gearman+Plugin
有两种方法:
与其采用热备份解决方案,不如考虑集群主服务器,这样您就可以获得主动-主动解决方案。你可能想看看 https://wiki.jenkins-ci.org/display/JENKINS/Gearman+Plugin。这可以帮助您聚集一堆大师,所以一个失败应该不是问题。
考虑 运行 容器上的 Jenkins,并将 jenkins 项目目录外部化为 NFS 中的外部卷,这样当一个容器出现故障时您可以启动另一个容器 - 保留两个容器 运行 将是并发写入的挑战(如果有的话)。
希望对您有所帮助。