介绍
Jenkins是一个用Java编写的开源的CI(持续集成)& CD(持续交付、部署) 的软件,用于自动化各种任务,包括构建、测试和部署软件。使用它可以极大的节约人工成本,减少项目在线上发布、测试阶段的重复操作,增加开发效率。
它的特点/优势官网也写的很明确

中文官网地址:https://www.jenkins.io/zh/
使用手册:https://www.jenkins.io/zh/doc/
看完这些优点就知道为什么要用它了。目的就是减少我们的操作,说白了就是为了偷懒省事,同时也可以降低在多台服务器上部署修改的文件时出错的几率。
这里记录下使用 GitLab + Jenkins自动化部署的方式实现项目代码在多台机器上的自动化发布
安装Jenkins
安装有多种方式,可以选择官网上提供的那种,不过它的官网打开速度特别慢,所以这里我采用在清华开源镜像站里下载rpm文件的方式进行安装
# 创建个安装的目录
mkdir -p /usr/local/jenkins && cd /usr/local/jenkins
# 下载rpm文件,版本自己选择
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.289.1-1.1.noarch.rpm
# 执行安装
rpm -ivh jenkins-2.289.1-1.1.noarch.rpm
到此安装结束,接下来修改下Jenkins的配置文件中的主要配置
vi /etc/sysconfig/jenkins
JENKINS_PORT="8080" # 这是修改端口的配置,默认 8080,看自己实际情况选择改不改
JENKINS_USER="jenkins" # 这是修改用户的配置,默认 jenkins,也是可改可不改
然后使用 service jenkins start 命令启动jenkins,这里如果报下图的错

原因是没有安装Java的JDK导致的,因为jenkins是Java编写的,所以要运行它需要先安装好Java环境。
解决方法:安装Java的JDK
# 查看可安装jdk版本
yum search java | grep -i --color JDK
# 选择某一版本进行安装
yum install java-11-openjdk-devel.x86_64
# 安装完成后确认JDK安装完毕,如果输出了版本号,证明安装正确
java -version
安装好Java JDK 后再次运行 service jenkins start 命令,看到如下图证明启动成功

PS:这里我遇到个问题,就是这显示启动成功,但是用
ps -ef | grep jenkins 命令看不到启动的进程,找了一圈后来发现是端口问题,在上面说的配置文件里把默认端口改了再重启就ok了。所以一定要注意 8080 端口是不是被占用了
也可以选择配置下 插件下载加速源(建议还是配置下,不然下载插件会慢死。。。)
cd /var/lib/jenkins/updates/
sed -i 's/www.google.com/www.baidu.com/g' default.json
sed -i 's/updates.jenkins-ci.org\/download/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
sed -i 's/updates.jenkins.io\/download/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
service jenkins restart
然后在浏览器页面访问 ip/域名 + 上边配置的端口,能打开就证明安装配置没有问题,如果打不开考虑下配置的端口是否在安全组或者防火墙中开放
登录配置
安装好后首次登陆会显示这个页面

直接
cat /var/lib/jenkins/secrets/initialAdminPassword 获取密码
输完后进入这个页面,直接选择第一个,安装推荐的插件,然后等待安装完成(这一过程时间略长)

安装完后会有一些插件无法安装成功,先不用管,继续往下进行,创建登录账户和实例配置。都完成后登录进入管理页面,选择系统设置

可以看到这里会提示缺少插件,点 纠正

就会进到插件管理里边,这里还需要下载前边自动安装里没有的三个必备的插件

2、Publish Over SSH

3、Git Parameter

然后回到系统设置,如果还有报红,根据提示再去装插件
所有插件都安装完后,记得重启下服务器
使用实操
- 配置自动化部署的目标服务器,可配置多个
位置在:【系统管理】-》 【系统配置】-》Publish over SSH

- 创建任务
点击新建任务菜单,给任务起个名,选第一个

- 配置任务参数

到此配置完成
测试效果
向 gitlab master 分支上push一个新内容

在jenkins上可以看到构建记录(PS:轮询master分支的时候只有检测到master分支发生了变化才会构建部署)

然后在目标服务器看是否同步了数据,这里/data目录就是上边配置里配置的存放目录

ok,gitlab结合jenkins自动化部署操作成功