最近的工作中用到了Jenkins,并且需要将原有的服务器中的Jenkins迁移到新服务器。网上查了很多资料,然后结合自己实际操作写了本篇博客,希望能给大家提供帮助。

目录

Jenkins简介

Jenkins安装

备份迁移

升级

安装过程中遇到的问题整理


Jenkins简介

Jenkins是一款用Java语言开发的开源的自动化服务器。我们通过界面或者Jenkinsfile告诉它执行什么任务何时执行。理论上,我们可以让它执行任何任务,但是通常只应用于持续集成和持续交付。

使用Jenkins能够提升软件工程生产力的根本原因在于它提供的是一个自动化平台,一个团队引入了Jenkins就像是原来手工作坊式的工厂引入了生产流水线。

Jenkins安装

1、下载 https://pkg.jenkins.io/redhat-stable/  下载合适的版本,下载完以后通过rz -y命令将安装包上传到服务器中(centos7)。

2、安装命令

sudo rpm -ih jenkins-2.73.2-1.1.noarch.rpm

自动安装完成之后: 
/usr/lib/jenkins/jenkins.war    WAR包 
/etc/sysconfig/jenkins       配置文件
/var/lib/jenkins/       默认的JENKINS_HOME目录(做迁移的时候备份的文件是JENKINS_HOME,有的是jenkins,此处一定要注意)
/var/log/jenkins/jenkins.log    Jenkins日志文件

3、启动Jenkins

sudo service jenkins start

4、启动成功之后第一次登录需要输入管理员密码,密码存放位置在/var/lib/jenkins/secrets/initialAdminPassword路径下,通过

vi /var/lib/jenkins/secrets/initialAdminPassword

命令打开,复制密码即可。

5、第一次加载需要安装插件,输入完成后会提示安装自定义插件还是推荐插件。选择推荐插件,安装过程可能由于网络原因导致失败,后续失败的可以在系统设置-插件管理里面卸载或者重新安装即可。

6、插件安装完成以后需会跳转到创建用户和密码的界面,创建一下登录就可以了。

备份迁移

接下来说一下迁移操作,楼主在迁移原来的Jenkins的时候需要备份的文件路径为:/var/lib/jenkins_home/,其实就是刚刚安装的/var/lib/jenkins/路径。首先将原来的jenkins_home文件夹进行备份

1、停止新服务器上安装的Jenkins服务,将备份的jenkins_home文件夹复制到新服务中的/var/lib路径下,保险起见可以将服务器中jenkins修改一下名字不要删除

2、将复制过来的jenkins_home文件夹重命名为jenkins,在/var/lib路径下执行如下命令

mv jenkins_home jenkins

此时就将jenkins_home文件夹修改成为了jenkins。

3、jenkins需要安装并配置jdk,jdk的安装参考https://www.cnblogs.com/linchengxinsx/p/9148728.html。安装完成以后

编辑/etc/init.d/jenkins文件,添加下图中红框中内容其中/usr/local/java/jdk1.8.0_131为jdk安装路径,后面再加上/bin/java

备注:如果安装Jenkins遇到无法找到jdk用该步骤可以解决。

升级

升级比较简单

如下图,系统管理—>下载。将jenkin.war包下载之后替换掉安装时/usr/lib/jenkins/jenkins.war 路径下的war然后重启就可以,也可以从Jenkins的官网下载war包进行替换

  • Jenkins端口修改

编辑 /etc/init.d/jenkins

vim /etc/ini.d/jenkins 进入编辑模式后寻找8080的字样,新版的jenkins并没有找到

但有配置的路径,如图所示。

vim /etc/sysconfig/jenkins

安装过程中遇到的问题整理

1、jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units

参考链接:https://www.ctolib.com/topics-135160.html

像他提示的那样,进行systemctl daemon-reload

然后systemctl restart jenkins重启

2、Failed to connect to repository : Error performing command: git ls-remote -h http://192.168.0.22/finance/AMS-Server.git HEAD

解决方法:Jenkins服务器上查看git是否已安装及安装位置

git version

whereis git

通过命令

yum  install git 

在服务器安装git然后重启Jenkins即可

3、修改权限,如果在登录Jenkins的时候遇到

报错信息:Jenkins throwing error: jenkins.model.InvalidBuildsDir: ${ITEM_ROOTDIR}/builds does not exist and probably cannot be created

方法一: 使用root用户来管理jenkins(简单粗暴)
由于jenkins自动部署会用到shell命令,使用root用户会避免遇到更多的问题(但是实际生产中,更推荐不要使用root用户)
$ vim /etc/sysconfig/jenkins # 打开配置文件
    $JENKINS_USER="root" # 修改$JENKINS_USER变量为root,并去掉当前行注释
#修改Jenkins相关文件夹用户权限(必须修改)
$ chown -R root:root /var/lib/jenkins
$ chown -R root:root /var/log/jenkins
$ chown -R root:root /var/cache/jenkins
#重启Jenkins服务并检查运行Jenkins的用户是否已经切换为root
$ service jenkins restart  
$ ps -ef | grep jenkins  # 查看Jenkins进程所属用户
方法二:新建用户【推荐】
$ useradd song #添加新用户song

$ vim /etc/sysconfig/jenkins # 打开配置文件
    $JENKINS_USER="song" # 修改$JENKINS_USER变量为root,并去掉当前行注释

#修改Jenkins相关文件夹用户权限(必须修改)
$ chown -R song:song /var/lib/jenkins
$ chown -R song:song /var/log/jenkins
$ chown -R song:song /var/cache/jenkins

#重启Jenkins服务并检查运行Jenkins的用户是否已经切换为song
$ systemctl restart jenkins
$ ps -ef | grep jenkins  # 查看Jenkins进程所属用户

启动成功之后,登录Jenkins你会发现原来的内容已经都存在了

参考连接:https://blog.csdn.net/wangfei0904306/article/details/56011877

4、有时我们需要下载相关插件,但是Jenkins上的插件是从国外网站下载的,会非常慢甚至现在不成功,事实证明下载不成功的情况会很多,因此我们可以通过离线下载的方式去下载需要的插件然后手动导入到Jenkins并重启Jenkins即可。

(1)、Jenkins插件离线下载地址:http://updates.jenkins-ci.org/download/plugins/

(2)、通过离线下载地址找到需要的插件,下载到本地,然后打开:系统管理—> 插件管理—>高级—>上传插件,选择本地下载好的插件点击上传,上传完重启Jenkins

欢迎加我微信咨询问题

Jenkins安装、备份、迁移相关推荐

  1. windows安全模式_Winclone 8 for Mac(Windows分区备份迁移和还原工具)

    winclone 8 Mac版是一款专业的boot Camp迁移助手,能够将你的PC移动到你的Mac中,让你实现win系统的迁移.winclone Mac版可以将Bootcamp分区安装的window ...

  2. MySQL迁移安装_mysql数据库安装路径迁移

    mysql数据库安装路径迁移之前,先停止业务. 一.停止数据库服务 systemctl stop mysqld 二.查看服务器存储情况 df -h 三.进入数据库默认安装目录 cd /var/lib/ ...

  3. 从零开始搭建系统2.4——Jenkins安装及配置

    1.安装 wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo rpm --im ...

  4. CentOS 7下Gitlab安装和迁移

    Gitlab做迁移,有一些麻烦,有如下结论: 1:Gitlab版本要完全一致,mysql版本最好一致(不能相差太大),服务器版本可以不一样(例如:迁移前环境为centos6.5,迁移后环境为cento ...

  5. Jenkins——Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包)

    Jenkins--Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包) 持续集成及Jenkins介绍 软件开发生命周期 什么是持续集成? 持续集 ...

  6. 高斯多种备份/迁移方式

    一:高斯跨数据库备份迁移有多种方式:roach, gs_dump,gs_dumpall,copy,gds,互联互通(实际是gds封装) 以上几种方法进行备份或者迁移各有有点和缺点,在进行备份或迁移时根 ...

  7. jenkins定时备份插件 ThinBackup

    一.概述 jenkins备份插件是:ThinBackup 二.安装ThinBackup Jenkins 插件中心搜索 ThinBackup,点击直接安装即可. 插件官网: https://plugin ...

  8. android换机备份,安卓手机备份迁移指南

    原标题:安卓手机备份迁移指南 买了新手机,本来是一件非常开心的事情,但是如何将旧手机上的有用信息转移到新手机上,这可是一件让大家很犯愁的事情,今天就跟着小编一起来看看安卓手机的四种转移数据的方法吧. ...

  9. 用友T3提示,年度[UFDATA_002_2017]并不存在,导致无法备份迁移。

    用友T3提示,年度[UFDATA_002_2017]并不存在,导致无法备份迁移. 现在都win11,迁移T3到新电脑,遇到了问题,某个年度账套不存在怎么办? 打开数据管理工具.无法导出. 002代表账 ...

最新文章

  1. Android 网络编程系列(5)Volley 网络框架入门
  2. C#中的String编码转换
  3. boost::container模块实现分配器特征的测试程序
  4. php有lambda表达式吗,Python中lambda表达式的简单介绍(附示例)
  5. SQL语言的事务机制_转摘
  6. 【python基础知识】python输出时出错,UnicodeEncodeError: 'gbk' codec can't encode character '\ue4bf.....
  7. libcudart.so.8.0 cannot open shared object file: No such file or directory
  8. phpstrom php cli,在docker中的PhpStorm 2017.1远程php-cli:配置php.ini文件不存在
  9. A5如何备份oracle数据库,oracle的数据库的导入导出
  10. 30个要点帮你完成java代码优化
  11. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 3.安装配置OpenStack认证服务(keystone)...
  12. android 五种存储方式,android数据五种存储
  13. MAC word2009 压缩图片大小转pdf
  14. 实现QQ表情功能(1)
  15. 显示器U2518怎么连服务器,【戴尔 U2518D 显示器使用感受】尺寸|分辨率|边框|底座|颜色_摘要频道_什么值得买...
  16. Java中四个访问修饰符public private protected 和默认(package-private)的用法详解
  17. 英语期刊写作-通往国际学术舞台的阶梯第三章答案
  18. 如何在Photoshop中为黑白老式照片着色
  19. 第 296 场力扣周赛(C语言解
  20. Windows如何区分鼠标双击和两次单击

热门文章

  1. 字 字节 双字概念确定
  2. c语言如何输出整形数组,C语言 有一个整形数组a,有10个元素,要求输出数组中的全部元素...
  3. 2007年度中国最受尊敬基金公司候选名单出炉
  4. 【数学建模学习】偏最小二乘回归PLSR原理和板子
  5. jzoj2248 送快递 (很鸡儿巧的题)
  6. Java面试时,你被深挖过什么问题?
  7. cba篮球暂停次数和时间_你认为CBA联赛的官方暂停是利大于弊还是弊大于利?
  8. 大学体育相关知识/运动学/运动防护
  9. 现代社会,人们对半导体产品依赖的程度越来越高
  10. svg基础标签以及用法