Jenkins自动化部署

介绍

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 获取密码

输完后进入这个页面,直接选择第一个,安装推荐的插件,然后等待安装完成(这一过程时间略长)



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



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

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

1、 GitLab

2、Publish Over SSH

3、Git Parameter

然后回到系统设置,如果还有报红,根据提示再去装插件

所有插件都安装完后,记得重启下服务器

使用实操

  1. 配置自动化部署的目标服务器,可配置多个
    位置在:【系统管理】-》 【系统配置】-》Publish over SSH
  1. 创建任务
    点击新建任务菜单,给任务起个名,选第一个
  1. 配置任务参数

到此配置完成

测试效果

向 gitlab master 分支上push一个新内容


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


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


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容