Jenkins部署git/vue

零、前言

前阵子发现部署这部分有点生疏了,所以还是自己又操作了一遍,
主要是为了给公司中对此生疏的同事写个操作手册,另外自己也
能做个笔记,好记性不如烂笔头。

一、为什么要使用jenkins

**略**

二.整体思路

Jenkins作用是:我帮你把这一套活儿干了,你就不用管了。
我理解大致的流程是这样的:
在一个能拉公司git代码的 具有linux系统的机器上(我用的本地虚拟机),
使用docker创建一个jenkins容器。然后配置一下需要拉取项目的git源码地
址以及需要build的分支,jenkins拉取代码,根据另外一些maven命令打
包,我们的项目打的是war包,然后将war通过ssh(注:ssh就是22端口,
linux系统提供的,比如我们用的xshell就是22端口可以远程的操作linux系
统),接着说,通过ssh把war包发送到指定的目标服务器上,当然这里目
标服务器就是我们新的阿里云了,和xshell一样,肯定是需要账号密码的
发送成功后,再用shell命令去做上述中:停服、删目录、清理日志、启
动务这些活。整理的思路就是这样。下边详细说。

三、安装jenkins


docker run --name=jenkins --privileged=true \
-u root \
-d \
-p 8090:8080 \
-p 50000:50000 \
--restart=always \
-v /usr/local/docker/jenkins_home:/var/jenkins_home \
-v /run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
jenkins/jenkins:lts

有时候会说找不到文件夹,那就手敲一遍就行了。
注:这个lts是朋友说能够使用java8的版本,dockerhub上11的版本,
我没有使用。好了,以上jenkins就创建完了。

四、查看管理员密码

docker logs 一下jenkins容器,可以看到这样的东东:红框内就是密码,如下图,其实你可以在jenkins_home下找到一个文件,类似的名字叫init_secret之类的文件,里面有密码。文件名我忘了叫啥。

在这里插入图片描述

五、登录jenkins

在浏览器中输入http://宿主机ip:8090

六、安装推荐的插件

在这里插入图片描述

ps:如何失败了,就重试。

七、添加管理员用户

在这里插入图片描述

八、更改账户信息

在这里插入图片描述

九、点击设置

在这里插入图片描述

十、更改用户定义时区

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

十一、安装插件

在这里插入图片描述

安装maven构建工具

在这里插入图片描述

安装node

在这里插入图片描述

安装Publish Over SSH

在这里插入图片描述

十二、添加凭证

进入系统管理-管理凭证(manager Credentials)
点击全局凭证

在这里插入图片描述

添加gitblit凭据
因为我们公司用的gitblit

在这里插入图片描述

十三、配置全局工具

在这里插入图片描述

添加maven

在这里插入图片描述

添加maven配置,不添加也行,但是要注意修改一下maven中setting.xml中的镜像源

添加jdk
这里的jdk就是用于maven编译时使用的,所以一定要校对本地使用的jdk版本,我使用的是jdk1.8.0_181

在这里插入图片描述

在这里插入图片描述

添加nodeJS

nodeJs是build前端用的

在这里插入图片描述

在这里插入图片描述

十四、设置系统配置

配置publish over ssh

在这里插入图片描述


点开高级按钮,然后输入登录阿里云的密码,上述remote directory是目前docker部署的文件的通用路径

十五、部署git项目

1.选择新建任务

在这里插入图片描述
输入任务名称,我直接输入的是中文:一个练,然后点击构建一个maven项目,点确认
在这里插入图片描述

2.General

在这里插入图片描述

3.源码管理

选择git
然后输入对应项目的后端地址

在这里插入图片描述

凭证就选gitblit的
分支选择部署的分支

4.构建触发器

在这里插入图片描述

这里选的轮询SCM,因为gitblit不像git一样能简单的设
置hook,所以这里用的轮换git上指定分支的提交记录来确定是否自动构建项目

5.pre steps

在这里插入图片描述

Root pom 选择项目的root模块的pom
Goals and options这里说一下
Clean package就是先清理 build的结果,然后打包
-pl 是指定要打哪个模块的包,使用groupId:该模块的artifactId
-am 是指需要打包的模块所依赖的模块也一起打包
扩展一下,如果是 -amd 就是将依赖于 打包的模块的模块也build
-e -X 是输入详细的build信息
-Dmaven.test.skip=true 是跳过测试

6.post steps

在这里插入图片描述


这里也要详细说一下:
   这里的意思就是打包后要干啥,要干啥?把war包发送到阿里云上并执行shell命令
Name 选择之前配置的公司阿里云
Source file填写为 web/target/*.war ,这里是 也只能是相对路径,相对的是job文件,就是
容器中的/var/jenkins/workspace/构建任务名称/,注意构建任务名称下就是build出来的东西,包括common、core、web这些模块。因为我们挂载了jenkins的整个目录,所以这部分其实可以在/usr/local/docker/jenkins/workspace下找到,前提是构建后不删除工作目录(下边会提到)
Remove prefix 是传送到目标服务器上后去掉哪些文件前缀,所以去掉了/web/target,如果不去掉的话,传到服务器那边 后  会自动创建/web/target文件目录,这不是我们所期待的。
Remove director 指要把war包传到那里,我们已经在系统设置中设置了阿里云的部署目录是/usr/local/docker ,所以这里填写的是相当于前面的文件目录,这里是以电商后端举例,所以相对目录是 oneplusx/ds/ds_primary/ds_primary_tomcat/webapps
Exec command 指war包传完之后要做什么事,做什么事?当然是停服、清日志、删war解压目录、启动项目,所以如下所示:(注:我这里有个假设前提是 后端tomcat容器没有被销毁重建,因为如果销毁重建后 容器的id就变了,那下边的9df就需要换成最新的tocmat容器id了)

echo '电商-初级-停服'
docker stop 9df
echo '清理日志'
cat /dev/null >/root/dockerlog/9df3c73e545bc92d25c1b76d1ad3f46e47957014032ec16a4cbe44f40a51275b/9df3c73e545bc92d25c1b76d1ad3f46e47957014032ec16a4cbe44f40a51275b-json.log
echo '清理之前的解压文件'
cd /usr/local/docker/oneplusx/ds/ds_primary/ds_primary_tomcat/webapps
rm -rf carDs
#启动容器
docker start 9df

7.构建后操作

这里是上述说的删除了构建结果工程目录,因为我们打包后,
之前那些过程文件就不需要了,所以删了,如果想看一下
build的结果并做学习了解,就不选下列的删除。

在这里插入图片描述

十六、部署vue项目

1.创建一个自由风格的任务

新建任务,输入任务名,选择构建一个自由风格的软件项目,然后保存,
然后进入配置

一顿省略,因为与上相同

2.构建

在这里插入图片描述

在这里插入图片描述

这里的意思就是打包后要干啥,要干啥?把打包后的文件夹发送到
阿里云上并执行shell命令
Name 选择之前配置的公司阿里云
Source file填写为 car_dsfw_primary/** ,这里是 也只能是相对路径,
相对的是job文件,就是容器中的/var/jenkins/workspace/构建任务名称/,
注意构建任务名称下就是build出来的东西,包括public ,src,
car_dsfw_primary等等文件和文件夹。因为我们挂载了jenkins的整个目录,
所以这部分其实可以在/usr/local/docker/jenkins/workspace下找到,
前提是构建后不删除工作目录(下边会提到)。
 /** 后边的两个星星表示把这个文件夹下边的所有东西都传过去
Remove prefix 是传送到目标服务器上后去掉哪些文件前缀,
所以去掉了/web/target,如果不去掉的话,传到服务器那边 后 
 会自动创建文件目录。前端在这里不需要填写。
Remove director 指要把文件夹传到那里,我们已经在
系统设置中设置了阿里云的部署目录是/usr/local/docker 
,所以这里填写的是相当于前面的文件目录,这里是以电商前端举例,
所以相对目录是 oneplusx/nginx/html
Exec command 指打包文件传完之后要做什么事,做什么事?
啥也不用做,但是这里不填东西会报错,所以就echo一个fuck吧。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值