尚硅谷jenkins

p1 教程简介

在这里插入图片描述

p2 jenkins在开发中的位置和作用

在这里插入图片描述

p3 jenkins+maven+git持续集成基础使用

三台服务器

在这里插入图片描述
在这里插入图片描述

p5 gitlab安装准备

在这里插入图片描述

p6 gitlab在ssh下安装

在这里插入图片描述
访问ip即可登陆,记得关防火墙
在这里插入图片描述
在这里插入图片描述

p07 docker下安装gitlab

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

p9 jenkins安装

在这里插入图片描述
下载war包 然后 java -jar jenkins.war 启动,即可访问jenkins
在这里插入图片描述
在这里插入图片描述
安装maven
在这里插入图片描述
在这里插入图片描述
这里安装的maven的jdk有坑,其实是jre
在这里插入图片描述

p10 jenkins配置maven+git自动构建jar包

安装maven插件
在这里插入图片描述
新建item
在这里插入图片描述
在这里插入图片描述
项目配置
在这里插入图片描述
在jenkins这台服务器上下载git,上面这个就不会报错了

yum install -y git

拉取分支设置
在这里插入图片描述
需要告诉jenkins maven安装在哪里
在这里插入图片描述
全局工具设置
在这里插入图片描述
在这里插入图片描述

设置完后继续返回设置我们的item
在这里插入图片描述pom目录位置需要和我们的gitlab一样
在这里插入图片描述
构建项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

默认yum安装java的时候会显示安装的是openjdk1.8 实则实际上只安装了jre
yum install -y java-devel

安装完成后, 测试运行maven打包
在这里插入图片描述

测试运行编译打包后的jar包,成功运行了!
在这里插入图片描述

p11 自动化发布到测试服务器并自动运行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
先配置测试服务器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置完成之后,项目这里就可以选择测试服务器了
在这里插入图片描述
在这里插入图片描述
jenkins服务器上面构建好的jar包
在这里插入图片描述

在这里插入图片描述

再次构建,运行并传输成功了
在这里插入图片描述
目标服务器就收到jar包了
在这里插入图片描述
上面既然已经把jar传到测试服务器了,可以再执行命令,把jar包启动起来!
在这里插入图片描述

p12 ssh publishers 超时机制

上面的操作有2个问题:
1:之前的jar包服务没有先停止,再次构建时候会有问题
2:没有指定日志输出,可能也会导致卡住

针对问题2措施:

nohup java -jar /root/xxoo/testJenkins*.jar >mylog.log 2>&1 &

在这里插入图片描述
在这里插入图片描述
针对问题1 可以构建前执行脚本
在这里插入图片描述

p14 构建前置脚本

#! /bin/bash
echo "start..."
rm -rf xxoo
echo '删除xxoo成功'
#获取传入的参数
appname=$1
echo "arg:$appname"
# awk 处理文本输出第2列进程
pid=`ps -ef |grep $appname| grep 'java -jar'|awk '{printf $2}'`
echo "进程为:$pid"
#如果pid为空,提示一下,否则,执行kill命令
if [ -z $pid ];
        then
                echo "$appname not started"
        else
                kill -9 $pid
                echo "$appname stoping..."
                # 再次查找是否成功关闭进程 -w精确查找
                check=`ps -ef|grep -w $pid|grep java`
                if [ -z $check ];
                        then
                                echo "$appname is stop"
                        else    echo "$appname stop failed"
                fi
fi

p15 代码提交测试

界面上执行脚本加上项目参数
在这里插入图片描述
手动构建成功

p16 gitlab自动构建项目

下载免登录插件,用token构建
在这里插入图片描述
在这里插入图片描述

http://192.168.56.130:8080/buildByToken/build?job=first&token=123456

在这里插入图片描述
安装插件后访问地址,输入jenkins项目名和token ,即可触发构建

在gitlab中配置钩子
触发事件设置:
勾选[合并请求事件触发]时,当创建合并请求和正真合并都会触发!更新或提交时就触发时 太消耗资源,不建议勾选
这里的事件都不太好用,建议在jenkins中手动构建或者定时构建
在这里插入图片描述
设置网络允许调用
在这里插入图片描述

p17 几种常用的构建触发器

在这里插入图片描述

p19 poll scm触发构建

和前面不同,相反 jenkins定时去访问gitlab触发构建,需要设置cron表达式
在这里插入图片描述

p20 配置邮箱接收构建通知

配置163邮箱为发件人
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

p 21容器化构建的几种方式

在这里插入图片描述

p22 docker jar文件打包到镜像中

使用第二种
在这里插入图片描述

准备一台测试服务器 装有docker环境 这里我们使用之前安装docker版gitlab的这台服务器 192.168.56.129
在这里插入图片描述

准备jar包
在这里插入图片描述
准备dockerfile,里面包含了拉取jdk,结合jar包,打包成新的镜像,然后生成容器运行

# 拉取jdk镜像
FROM openjdk:11
EXPOSE 8080
# 宿主机工作目录/root
WORKDIR /root
# 左边是宿主机jar包目录 右边是镜像要运行在的容器目录
ADD jarfile/testJenkins*.jar /root/app.jar
ENTRYPOINT ["java","-jar","/root/app.jar"]

在这里插入图片描述
使用dockerfile构建镜像

docker build -t testjenkins .

配置国内镜像加速

修改/etc/docker/daemon.json文件,没有的话创建一个

写入

{
    "registry-mirrors": [
        "https://ustc-edu-cn.mirror.aliyuncs.com",
        "http://hub-mirror.c.163.com",
        "https://registry.aliyuncs.com"
    ]
}

重启服务

systemctl daemon-reload
systemctl restart docker

构建之后,看到多出了2个镜像一个是拉取的jdk,一个是我们要运行的镜像
在这里插入图片描述
运行我们的镜像
在这里插入图片描述
容器启动就可以访问jar包的项目了
在这里插入图片描述

p23 使用外部jar包完成自动化部署

使用第一种
在这里插入图片描述

使用了jdk镜像运行容器,挂载jar包目录,也可以直接访问

docker run -d -p 8080:8080 --name testJenkins-out -v /root/jarfile/testJenkins-1.0-SNAPSHOT.jar:/app.jar openjdk:11 java -jar app.jar

在这里插入图片描述
为了自动部署,需要自动删除服务器旧的jar包,停止容器,重新生成jar包,把jar包推送至测试服务器,重新启动容器
修改测试服务器ip
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

p24 镜像方式自动化部署

上面的第二种,如何自动化部署
在这里插入图片描述
代码中有dockerfile
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

p 25jenkins集群并发构建

在这里插入图片描述
在这里插入图片描述
添加从节点
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值