Jenkins的基本概述

Jenkins是一个广泛用于持续构建的可视化web工具,可用于自动化与构建、测试、交付或部署软件相关的各种任务。
可以通过安装包、tomcat、java、docker方式进行安装使用
image-1657266677904
CiCD介绍
CICD可以理解为管道,一个自动化流程,用于实现应用开发中的高度持续自动化和持续监控

持续集成(Ci)
Ci指持续集成,它属于开发人员的自动化流程,成功的CI说明新的代码会定期或手动构建、测试并合并到共享存储库中,可以有效解决由于分支过多而导致相互冲突的问题

持续交付、持续部署(CD)
CD指持续交付、持续部署,持续交付指开发人员将代码变更后会自动进行测试然后上传到共享存储库,然后由运维部署到生产环境中;持续部署指自动将变更的代码从共享存储库发布到生产环境。二者通常交叉使用,也可以单独使用,主要取决于自动化程度

工厂里的生产线以快速、可重复、自动化的方式将原材料生产为消费品,软件交付也是同样的道理,而如何完成这项工作的总体设计就是持续交付(CD),启动生产线的过程就是持续集成(CI),将最终产品提供给客户的过程就是持续部署(CD)

传统方式部署项目

  1. 将当前的项目打成一个jar包;
  2. 需要将该jar包上传到linux服务器中
  3. java -jar 指令
    流水线
    微服务----部署容器化运行

Jenkins的环境构建(npm方式)

官方地址:http://mirrors.jenkins-ci.org/redhat/
http://logaaaaa.oss-cn-beijing.aliyuncs.com/fujian/jenkins-2.335-1.1.noarch.rpm
在rpm安装文件的所在文件夹中,执行:

rpm -ivh jenkins-2.335-1.1.noarch.rpm  

修改/etc/sysconfig/jenkins配置文件

vim /etc/sysconfig/jenkins
# 将JENKINS_USER改成="root"

修改 /etc/init.d/jenkins文件
有时候我们的java的安装文件是自己随便找一个java路径安装的,需要在jenkins配置文件中指定我们java文件的安装路径
启动jenkins

#启动jenkins
systemctl daemon-reload
systemctl start jenkins
#开放默认的8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload 

安装插件:

所需的插件:
• Maven插件 Maven Integration plugin
• 发布插件 Deploy to container Plugin
需要安装插件如下:
安装插件Deploy to container —支持自动化代码部署到tomcat容器
Git 插件 可能已经安装
Maven Integration :jenkins利用Maven编译,打包所需插件
Publish Over SSH :通过ssh连接

设置ssh

image-1657273551131
image-1657273723400 最后一个为访问的文件夹

配置jdk与maven

image-1657273926989
image-1657274450067

测试构建(springboot)

新建任务

image-1657274730528
image-1657274954174

发布

image-1657276601050

cd /var/lib/jenkins/workspace/blct/target/
#项目jar包名称
APP_NAME=blct-1.0.jar
#重启命令
pid=`ps -ef | grep $APP_NAME | grep -v grep |awk '{print $2}'`
if [ $pid ]; then
    echo :App  is  running pid=$pid
    kill -9 $pid
fi
BUILD_ID=DONTKILLME
nohup java -jar $APP_NAME> sm.log 2>&1 &

持续构建坚听gitlab

image-1657277248382
image-1657278595236