Jenkins实现自动化部署--DevOps学习第四章

一、使用Jenkins环境准备

 1.CentOS7系统,并且有maven、jdk1.8、docker
 2.gitee/github账号

二、Jenkins拉取和配置

1.docker拉取Jenkins镜像
这里直接拉最新版

docker pull jenkins/jenkins 

想拉其他版本可以去官方看看https://hub.docker.com或者用docker search jenkins

2.启动docker并run Jenkins

systemctl start docker
docker run -d -uroot -p 9095:8080 --name jenkins_01 --privileged=true -v /home/jenkins_home:/var/jenkins_home -v/usr/local/maven/apache-maven-3.6.3:/usr/local/maven -v /usr/loacl/java/jdk1.8.0_341:/usr/loacl/java jenkins/jenkins

-v的效果是将宿主机的数据挂载到容器中,它的机制为宿主机有数据时,以宿主机为准;宿主无数据,从容器复制过来,再以宿主机为准。:号前是宿主机的数据目录,:后是容器里的目录。你Centos7安装了jdk和maven的挂载进容器来,不然等下Jenkins配置可能会找不到这两玩意,网上说如果Jenkins和maven和jdk在同一个目录就可以不挂载,不过我没试过。
请添加图片描述
容器目录如果没有会自动创建,随便取个熟悉的名称就行,容器目录你要进容器里查看,你在连接宿主机的软件上是看不到的。

以-v第一个为例,这个是宿主机目录
请添加图片描述
这个是容器目录
请添加图片描述
3.打开Jenkin,下载插件
在浏览器输入Jenkins的ip和端口号,如果你是本地那就是127.0.0.1:端口号。出现如下画面,去该文件夹找你的密码或者直接在命令行输入cat /xxx/.jenkins/secrets/initialAdminPassword
请添加图片描述
选新手入门安装插件,稳
请添加图片描述
其他插件根据情况自行安装
请添加图片描述
请添加图片描述
4.Jenkins配置
最麻烦的就是这里了,可能会出现各式各样的问题

①首先弄系统配置
请添加图片描述
配置你jenkins的打开url,就是你在浏览器输入的那个
请添加图片描述
配置gitee地址,仓库管理是github、gitlab的也都同理
请添加图片描述
配置之前你得去你的仓管那边生成令牌,其实这玩意就相当于你免密登录仓管,这里示例gitee令牌生成
请添加图片描述
请添加图片描述
这些密码账号、令牌之类的统称为凭据,可以在下图所示的地方进行管理
请添加图片描述
请添加图片描述

配置ssh连接 (Publish over SSH)
首先在宿主机生成公钥和秘钥,输入ssh-keygen -t rsa直接一直按回车就行,你想命名成其他就输入名字再按回车咯,我觉得可以但没必要。完成之后会在/root/.ssh目录下生成公钥和秘钥
请添加图片描述
请添加图片描述
可以打开文件看,也可以直接到目录下用cat命令看,还有就是这个秘钥是绿色框里所有的内容,头部尾部两行不要漏了
请添加图片描述
回到jenkins配置ssh
Path to key (SSH私钥的文件路径)和Key(私钥)都是配置私钥,填其中一个就行
如果“Key”和“Path to key”都设置,则“Key”的优先级较高
请添加图片描述
Hostname:通过SSH连接到的机器的主机名或IP
Username:SSH服务使用的用户名,登录时的用户名
Remote Derictory:
运程机器上真实存在的目录,并且“Username”指定的用户要有访问此目录的权限,如果要上传文件则传送到此目录下。
请添加图片描述
这里科普一下各个ip防止混淆,以及访问关系如下图所示

docker exec -it xxxx /bin/bash  #进入容器
cat /etc/hosts  #查看docker容器ip
ifconfig #查看宿主机和物理机ip

请添加图片描述
请添加图片描述
弄好后回到gitee上配置公钥,标题随便取
请添加图片描述

②全局工具配置
配置JDK1.8,我建议jdk和maven都是自己下载好并配置环境变量,不要搞什么自动安装不然出了问题挺麻烦的(这里我是自己下载安装的,压缩包没删那玩意不影响配置,不用在意)
请添加图片描述
请添加图片描述
配置maven
请添加图片描述
请添加图片描述
其他默认就行

三、构建项目及其配置

1.创建自由风格项目

听说现在挺多公司都是用流水线,理论上两个都行
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

2.项目配置

①配置git

请添加图片描述

②配置构建触发器

请添加图片描述
请添加图片描述
这里要去gitee上配置webhook
请添加图片描述
请添加图片描述
内网穿透教程:

https://blog.csdn.net/AsFarmer/article/details/125950939?spm=1001.2014.3001.5501

这里我做了很多种测试,如图如果请求响应时间很长又失败的那基本上就是url或者密码错了,如果时间短但失败一般是这免费的穿透器不稳定,属于正常情况;如果是200说明成功。(最近这玩意经常发癫呐真的太不稳定了,强烈建议用付费的穿透器或者自己买服务器)
请添加图片描述

③配置构建步骤

在Build Steps增加构建步骤
请添加图片描述


在这里插入图片描述
我这里是用Dockerfile制作镜像然后跑起来,不用Dockerfile也是可以的,执行的命令不同而已。Dockerfile制作镜像教程
请添加图片描述
在这里插入图片描述

A、Source files 是相对于/xxx/jenkins_home/workspace/的路径(xxx为你放jenkins_home的父目录)
在这里插入图片描述
我这边的完整路径是/home/jenkins_home/workspace/jenkins_Test/target/
其实跟idea上打包是一样的,这边是jenkins从远程仓库(我这边是gitee)拉取代码然后执行了调用顶层 Maven 目标那里的打包命令帮你打包好放在这里
在这里插入图片描述

B、Remove prefix 删除前缀,比如像上图那样写Source File却不写Remove prefix的话,那么传送文件过去的时候就会自动新建一个名为target的文件夹,然后在该文件夹下存放所传送的jar包,如果写了target则只传送jar包到指定目录。

C、Remote directory 目标目录,source的文件就是传送来这边。我这里不知道为什么用不了绝对路径(估计插件版本有问题吧不然就是jenkins抽风了),用绝对路径的时候发现确实传输的文件而且状态也是Success,但去我指定的目标目录一看却什么都没有,非常神奇。开启详细日志之后发现,它居然自己执行了cd /root,我也不知道发什么癫,于是jar我也只能放到/root目录下了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
D、Exec command 是传送完文件后执行的命令,这里的jenkins是我项目的容器名字随便取的,跟真正的jenkins没什么关系。
每次构建先把上一次的容器停掉再删除对应的镜像,以免浪费服务器资源
这边你可以先把Exec command里面的命令在虚拟机上自己手动执行一遍,看看有没有错

docker stop jenkins
docker rm jenkins
docker rmi jenkinstest:1.0

cd /root/myfile
docker build -t jenkinstest:1.0 .
docker run -p 8070:8070  --name jenkins -it -d jenkinstest:1.0

一般起容器可能会有错(我自己就是,不过都解决了),可以用docker logs查看报错日志
在这里插入图片描述
至此漫长的配置就完成了(感觉挺复杂的,用其他云的CICD比较简单,不过这边能学到很多东西)

四、测试

点击部署,测试自己写的接口
在这里插入图片描述
看嗷,我这里第一次部署测试顿号’写歪来了,现在去idea修改。
在这里插入图片描述
这是新代码,推到gitee上去
在这里插入图片描述

再次点击部署并测试接口。成功!!!
在这里插入图片描述

五、结语

 这次写的很详细,主要踩的坑和解决方法也写在操作中了就不单独写了,Jenkins还有其他功能我也正在摸索中,以后学会了也会继续补充到这边来。自学新的东西好累啊,不过确实能成长,在查阅相关资料的时候知识的广度也会不断扩展。

补充:
 jenkins部署的时候,不要以为变绿了就是成功了,只是编译能通过而已,具体要求看他的控制台输出的日志,就像你打的代码能跑起来,但是功能未必如你想要的那样。如下图,虽然是状态是成功,但传输了0个文件,那肯定是不行的。这种情况一般是Source File 路径写错了,参考上边写的配置步骤很好解决的。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值