• -------------------------------------------------------------
  • ====================================

Centos7安装Jenkins和目录迁移

技能 dewbay 3年前 (2021-06-08) 1665次浏览 已收录 0个评论 扫描二维码

Centos7 安装 Jenkins 和目录迁移

内容:

1. 安装 Jenkins 和配置

  • 安装

根据Jenkins官方安装指引,安装步骤如下:

shell> wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo #下载Jenkins的更新源,存储到/etc/yum.repos.d/jenkins.repo
shell> rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key #导入Jenkins软件的公钥
shell> yum upgrade		#更新源
shell> yum install jenkins java-1.8.0-openjdk-devel	#使用源安装Jenkins和 java-8-jdk

上面这个是官方的教程,我操作的时候,执行 yum install jenkins 时下载比较慢,所以我就在找 rpm 包,想使用迅雷下载 rpm 包然后上传到 Centos 主机去。附上官方的 rpm 包下载链接:https://pkg.jenkins.io/redhat-stable

至此,Jenkins软件已经安装好了,下面可以启动 Jenkins 了:

shell> systemctl start jenkins.service	#启动 Jenkins,如果要 Jenkins 开机自启,执行 systemctl enable jenkins.service
shell> ps -ef | grep java				#查看 Jenkins 服务是否已经启动

Centos7安装Jenkins和目录迁移

可以看到它其实是运行了一个 Java 进程,运行了一个 Java Web 项目/usr/lib/jenkins/jenkins.war,Jenkisn 家目录/var/lib/jenkins,日志文件/var/log/jenkins/jenkins.log,项目解包目录/var/cache/jenkins/war,http 访问端口8080。现在我们可以在浏览器进行访问了,我这里输入:http://172.16.11.141:8080

如果无法打开页面,请查看一下自己的防火墙设置是否已经开放了 8080 端口,如下添加开放 8080 端口:

shell> firewall-cmd --zone=public --add-port=8080/tcp --permanent	#永久添加 8080 端口
shell> firewall-cmd --reload	#重新加载,一定要重载才会生效
shell> firewall-cmd --list-port	#查看开放的端口

Centos7安装Jenkins和目录迁移

打开浏览器,进行访问,可以看到在/var/lib/jenkins/secrets/initialAdminPassword下存储了初始密码,复制粘贴到浏览器文本框即可:

Centos7安装Jenkins和目录迁移

然后它会联网加载插件,我这里应该是无法连接网络,选择Skip Plugin Installations等下再重新配置更新的源,再安装所需的插件

Centos7安装Jenkins和目录迁移Centos7安装Jenkins和目录迁移

然后,到了设置用户名、密码和访问的 url,根据自己所需设置即可。至此,Jenkins 的安装已经完成。

Centos7安装Jenkins和目录迁移Centos7安装Jenkins和目录迁移

  • 配置

Jenkins 默认的更新Update Sitehttps://updates.jenkins.io/update-center.json,在国内比较慢甚至无法访问,所以,配置成清华的更新源比较好,把Update Site更改为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.jsonUpdate Site的路径为:Jenkins-> Manage Jenkins->Manage Plugins->Advanced

Centos7安装Jenkins和目录迁移Centos7安装Jenkins和目录迁移

修改了源还不行,还需要修改 Jenkins 目录下的 update/default.json 文件,它有一个测试网络连通的 Google 页面,在国内无法访问,会导致连不上网络,执行命令:

shell> cd /var/lib/jenkins	#进入 Jenkins 的家目录
shell> sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' updates/default.json	#我这里直接用 sed 替换了,可以看看这个 default.json 文件的内容
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' updates/default.json	#替换为清华的源
shell> systemctl restart jenkins.service	#重启 Jenkins 服务

最后,我在Available项搜索git并安装了 git 插件,并创建了一个 item 拉取了一个 git 仓库代码。

2. 尝试目录迁移,模拟磁盘空间不足

在上面我已经新建了一个 item 并拉取了 git 仓库代码,现在模拟磁盘空间不足,进行目录迁移,并且保留构建的文件数据。我这里把 Jenkins 迁移到/var/lib/jenkins-home目录下,执行命令:

shell> mkdir /var/lib/jenkins-home		#创建 jenkins-home 目录
shell> chown jenkins:jenkins /var/lib/jenkins-home	#更改目录权限和用户组
shell> rsync -azvP /var/lib/jenkins/* /var/lib/jenkins-home	#使用 rsync 同步复制同步文件,没有 rsync 的可以使用 yum install rsync 安装
shell> mv /var/lib/jenkins /var/lib/jenkins.bak	#模拟 Jenkins 目录已经迁移了,不存在了。
shell> vim /etc/sysconfig/jenkins	#编辑 Jenkins 的配置文件,修改 JENKINS_HOME 变量

修改/etc/sysconfig/jenkins文件的JENKINS_HOME

## Path:        Development/Jenkins
## Description: Jenkins Automation Server
## Type:        string
## Default:     "/var/lib/jenkins"
## ServiceRestart: jenkins
#
# Directory where Jenkins store its configuration and working
# files (checkouts, build reports, artifacts, ...).
#
JENKINS_HOME="/var/lib/jenkins-home"

编辑后保存,然后重启 Jenkins 服务:

shell> systemctl restart jenkins.service	#重启 Jenkins 服务

重启后重新登录,在 Web 页面进入 Jenkins 的配置管理,可以看到 JENKINS_HOME 已经生效:

Centos7安装Jenkins和目录迁移Centos7安装Jenkins和目录迁移

但是,你会发现之前构建的拉取的代码文件没有得到正确配置,它读取的路径还是原有的/var/lib/jenkins/***

Centos7安装Jenkins和目录迁移

查看 JENKINS_HOME/jobs 目录,会发现每个 item 对应于一个文件夹,文件夹下有 builds 文件夹、配置.xml 文件和下一次构建的数字 number 存储文件,builds 目录下存储了我们这个 item 每次构建的信息,1,2,3 文件夹对应于第 1,2,3 此构建,下面查看neteasemusicplayer这个item的第一次构建的文件信息:

shell> cd /var/lib/jenkins-home	#进入迁移后的 Jenkins 目录
shell> vim jobs/neteasemusicplayer/builds/1/build.xml	#查看构建的配置信息

Centos7安装Jenkins和目录迁移

可以发现 workspace 的路径还是原有的目录路径,我们为了让迁移后的 Jenkins 能够读取迁移后的路径,还需要修改每一次构建的build.xml文件,里面存储了 Jenkins 读取的目录信息:

shell> find jobs/ -name build.xml | xargs sed -i "s/\/var\/lib\/jenkins/\/var\/lib\/jenkins-home/g"	#查找 jobs 目录下的名称为 build.xml 的文件,使用 sed 替换查找的文件里面的/var/lib/jenkins 为/var/lib/jenkins-home

最后,还要在 Jenkins 的 Web 界面的 Manage Jenkins->Reload Configuration from Disk 进行重载配置文件。

Centos7安装Jenkins和目录迁移Centos7安装Jenkins和目录迁移

重载配置文件后重新登录,进入 item 的 workplace 可以看到原有文件已经显示出来了,目录迁移成功。

Centos7安装Jenkins和目录迁移


露水湾 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Centos7安装Jenkins和目录迁移
喜欢 (0)
[]
分享 (0)
关于作者:
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址