目录

一、需求分析

二、升级

1、下载war包

2、部署

3、安装为windows服务开机自启动

4、插件安装

三、数据同步

1、凭证迁移

2、登录用户迁移

3、ftp迁移(Publish Over Ftp插件)

4、任务用户分组迁移

5、Jobs迁移(需完成以上四步后再进行)

5.1、当新老Jenkins机器网段互相可访问状态下时

5.2、当网段不通时

四、负载均衡

1、主节点配置

2、从节点配置

五、主从同步与备份

1、主机进行本地同步

2、主机同步到备份机




往期精彩:

#1maven打包时指定profile过滤resources的一些总结-CSDN博客文章浏览阅读737次,点赞28次,收藏23次。maven打包时指定profile过滤resources的一些总结https://blog.csdn.net/weixin_42718399/article/details/135386153?spm=1001.2014.3001.5502

#2Vite+Vue3+SpringMVC前后端分离 解决跨域问题和session每次请求不一致问题-CSDN博客文章浏览阅读1k次,点赞37次,收藏14次。Vite+Vue3+SpringMVC前后端分离通过vite/nginx解决跨域问题和session一致性问题https://blog.csdn.net/weixin_42718399/article/details/135388463?spm=1001.2014.3001.5502


一、需求分析

1、从2.xx(2017年的版本)升级到2.346.3;

2、需要可以管理使用ant和maven进行生命周期管理的工程(svn拉取->构建->上传ftp);

3、在新机器上安装新版本Jenkins,并将老版本的数据进行同步;

4、实现负载均衡与备份。

二、升级

1、下载war包

Jenkins 的安装和设置

2、部署

进入控制台

java -jar jenkins.war

访问http://localhost:8080/jenkins/ 

将控制台输出的随机密钥复制后即可设置账号密码,设置完成后不要安装推荐插件,直接跳过即可。

3、安装为windows服务开机自启动

在"管理Jenkins"中找到"Install Windows Server",安装完成后在"系统设置"中配置URL

ab7f7f35c5d7449594bc99331eea2547.png

4、插件安装

由于新机器无法访问外网,插件需要手动下载:jenkins插件下载官网

并在每个插件的检出中检查其版本号与jenkins版本的对应关系

814b4fa009c44a8a86e14c753ff19387.png

下载后在"管理Jenkins"的"插件管理"中点击“高级”找到"Deploy Plugin"

254df5fe203c489da3ad4c7c380327c9.png

由于插件之间存在依赖关系,需要逐个下载缺失的依赖插件。

如果可以联网,直接在控制台"Manage Plugin"中下载需要的插件即可,缺失的依赖会自动下载安装。

三、数据同步

1、凭证迁移

cf7de98d939b461e82ab9ee92531de4c.png

方法1:凭据不多的情况下,直接在新Jenkins上创建新凭据,把唯一标识(id)、密码、名称复制过去即可

方法2:打开Jenkins安装根目录,找到credentials.xml文件

e91a73c6afce4e3d859f0d3888868bf6.png

其中已经存储了每个凭据的内容,将CopyOnWriteArrayList下的内容直接复制粘贴到新的Jenkins的该文件下的对应位置内即可。配置完需要重启。

2、登录用户迁移

找到Jenkins根目录下的users目录下的users.xml文件

7339db1308c240b9b9383ea067081dc0.png

其中Map下的每个entry中,第一个string为key,代表登录用户的id,也为展示的名称;第二个string为value,对应users下的文件夹的名称。将所有entry直接复制到新Jenkins的对应位置中。

打开对应的文件夹后可以看到对应用户的相关信息

07c7872ae4d84128995e222966009d7d.png

将所有文件夹直接复制到新Jenkins对应对应位置中。

配置完成后重启。

3、ftp迁移(Publish Over Ftp插件)

在新的Jenkins控制台直接新增ftp配置,需要保证Name与旧版Name的一致性。

ce855b29627c470584dec9e861740b4f.png

4、任务用户分组迁移

484af30e94f0425c9ffdc0958410b0b0.png

可以看到画横线处即为所配置的分组,每个分组下有不同的Jobs。

找到Jenkins根目录下的config.xml

4d41f0910c0e4cc183c32c0a95b4b1c4.png

其中views下有多个listView即对应不同的分组信息,listView下的jobNames中的string即为每个job的名称。

将所有listView复制到新Jenkins对应的位置下即可完成任务分组的迁移。

配置完成后重启。

5、Jobs迁移(需完成以上四步后再进行)

5.1、当新老Jenkins机器网段互相可访问状态下时

当新老Jenkins机器网段互相可访问状态下时直接安装"Job Import Plugin"

447a9d1272c1417dad9de4da79166bd2.png

然后在"系统设置"中配置需要迁移的Jenkins的URL和登录账户名、密码

6bc064c7bc594dd884f61f074db8becc.png

返回首页左侧菜单找到"Job Import Plugin",点击"Query",查询到结果后选中需要迁移的任务,点击"Import"即可一键导入。

189b06e407544b7a89df25acf56c1012.png

5.2、当网段不通时

将Jenkins根目录下的jobs目录下的内容全部拷贝到新Jenkins的对应位置即可。

配置完成后重启。

四、负载均衡

1、主节点配置

相关文章已经太多了,这里直接放图

3523c451bee34f77acff0f216c920b80.png

806fd1e5039c4ab7b01c5000025c9ab7.png

195535b29fc84d5d8cc37f58fed2e379.png

这里有一个细节,不要使用WebSocket,在"全局安全设置"中使用代理->随机端口

53e5fc17832c4766a0dee8a3b596469f.png

fbfad894551f4cf6b9cf2329da82ad44.png

保存后复制Jenkins提供的命令行,下载agent.jar

2、从节点配置

在从节点机器上配置一个批处理命令,加入到开机自启动任务下,保证从节点始终与主节点建立连接

b106ec595f9f4939977f15e7394371b9.png

@echo off
set "JAR_PATH=C:\slave\agent.jar"
start /min javaw -jar "%JAR_PATH%" -jnlpUrl http://xx.xx.xx.xx:8080/computer/slave1/jenkins-agent.jnlp -secret xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -workDir "C:\slave-work-space"
exit

其中-workDir目录与主节点配置中的工作目录保持一致。

五、主从同步与备份

实际上从节点机器中并不需要安装Jenkins,为了保证主节点机器挂掉时可以继续使用Jenkins,提出了在从节点备份一个完整Jenkins的需求。

1、主机进行本地同步

安装插件thinBackup,调度策略写法为cron,图中策略为每日凌晨1点执行备份

cc4958f791954aa2a4df54a1a6dfc4d0.png

6c34356ec807425087b61b5ce29e2266.png

根据需要勾选即可。

该备份可用于主机恢复,也可直接复制到备份机中用于恢复备份(需要备份机安装thinBackup)

2、主机同步到备份机

利用Windows机器的共享文件夹的功能,将主机Jenkins的安装目录和备份机的Jenkins安装目录均设置为共享:

614b4f2c57864e17aabf67a6da5ffbd2.png

在主机设置一个批处理命令加入定时任务(开始菜单搜索"任务计划程序")

图中所示将主机的凭据、任务分组、登录用户信息、任务等主要数据的配置文件通过增量备份的方式传输到备份机的对应位置,并生成日志文件,保存7天。

@echo off
set logpath=C:\Jenkins\backLog
set logfile=%logpath%\xcopy_jenkins_%date:~0,4%%date:~5,2%%date:~8,2%.log
xcopy /D /Y "\\主机WINDOWS名称\Jenkins\credentials.xml" "\\备份机WINDOWS名称\Jenkins\" >> %logfile%
xcopy /D /Y "\\主机WINDOWS名称\Jenkins\config.xml" "\\备份机WINDOWS名称\Jenkins\" >> %logfile%
xcopy /E /I /D /Y "\\主机WINDOWS名称\Jenkins\users\*" "\\备份机WINDOWS名称\Jenkins\users\" >> %logfile%
xcopy /E /I /D /Y "\\主机WINDOWS名称\Jenkins\jobs\*" "\\备份机WINDOWS名称\Jenkins\jobs\" >> %logfile%

forfiles /p "%logpath%" /s /m *.log /d -7 /c "cmd /c del @path"
exit

在备份机同样设置一个处理命令加入定时任务,用于在主机同步到备份机后重启备份机Jenkins以使得配置生效。

@echo off
net stop jenkins
net start jenkins
exit

如果对你有帮助,点赞、收藏、关注是我更新的动力哟!

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐