300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Jenkins+Maven+Git+Tomcat搭建持续集成环境 自动打包部署详细教程

Jenkins+Maven+Git+Tomcat搭建持续集成环境 自动打包部署详细教程

时间:2022-03-10 03:56:11

相关推荐

Jenkins+Maven+Git+Tomcat搭建持续集成环境 自动打包部署详细教程

服务器系统 centOS 8.2

1. 运行环境安装

1.1 安装 jdk

上传安装包,然后解压

[root@ianly ~]# tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/local/

配置环境变量

[root@ianly ~]# vim /etc/profile

JAVA_HOME=/usr/local/jdk1.8.0_144PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOMEexport PATH

[root@ianly ~]# source /etc/profile

检测是否安装完成

[root@ianly ~]# java -version

1.2 安装 maven

上传安装包,然后解压 官网:Maven – Download Apache Maven/download.cgi

tar zxf apache-maven-3.3.9-bin.tar.gz –C /usr/local/

配置环境变量

[root@ianly ~]# vim /etc/profile

export MAVEN_HOME=/usr/local/maven-3.3.9export PATH=$PATH:$MAVEN_HOME/bin

[root@ianly ~]# source /etc/profile

检测是否安装完成

[root@ianly ~]# mvn -version

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; -11-11T00:41:47+08:00)Maven home: /usr/local/maven-3.3.9Java version: 1.8.0_144, vendor: Oracle CorporationJava home: /usr/local/jdk1.8.0_144/jreDefault locale: zh_CN, platform encoding: UTF-8OS name: "linux", version: "3.10.0-862.11.6.el7.x86_64", arch: "amd64", family: "unix"

1.3 安装 git

[root@ianly ~]# yum install git

检测是否安装完成

[root@ianly ~]# git --version

git version 1.8.3.1

1.4 安装 tomcat

上传安装包,然后解压 官网:

Apache Tomcat® - Apache Tomcat 8 Software Downloads/download-80.cgi

[root@ianly ~]# tar zxf apache-tomcat-8.5.20.tar.gz -C /usr/local/

拷贝一份tomcat用来运行项目

[root@ianly ~]# cp -r /usr/local/apache-tomcat-8.5.20 /usr/local/tomcat-jenkins/

2. 安装配置 Jenkins

2.1 下载 Jenkins的 war 包并运行上传安装包 地址:

http://mirrors.jenkins.io/war-stable/latest/jenkins.warhttp://mirrors.jenkins.io/war-stable/latest/jenkins.war拷贝一个用来运行 Jenkins 的 tomcat,并修改 tomcat 的 server.xml配置文件中的端口号:「8080」->「8888」,「8005」->「8006」,「8009」->「8010」,这里改端口号是因为后面还要启动一个运行项目的tomcat服务,如果你是在两台机器上操作,可以用默认的端口。

[root@ianly ~]# cp jenkins.war /usr/local/tomcat-jenkins/webapps/

启动Jenkins的tomcat

[root@ianly tomcat-jenkins]# ./bin/startup.sh

2.2 访问并初始化

ip:8888/jenkins

提示输入密码,查看初始密码

[root@ianly ~]# cat /root/.jenkins/secrets/initialAdminPassword

输入密码之后点击「继续」,跳转到下一个页面,选在插件安装

安装完成之后,创建用户与密码

完成后就可以进入首页界面进行配置与管理

2.3 安装一些基础的插件

通过系统管理—管理插件

在这里,我只安装本测试需要的几个插件

「Maven Integration」,「Deploy to container」,你可以根据具体场景需求,下载对应需要的插件

2.4 在Jenkins上配置maven,git,jdk

系统管理 -> 全局工具配置

具体配置的路径根据你jenkins所在服务器环境路径来配置

保存。

至此,Jenkins的安装配置完成。

3.使用jenkins来运行实例

3.1 回到主页,点击「创建一个新任务」

3.2 选择「构建一个maven项目」

源码管理,配置git仓库地址和授权用户

3.3 添加git仓库授权用户

添加后选择刚添加的用户

指定获取git的分支

git文件下载默认目录:/root/.jenkins/workspace

3.4 构建,填入maven安装命令 clean install -Dmaven.test.stop=true

3.5 Post Step中选择「执行shell」,使用一个自动化发布的脚本

先在Jenkins所在的服务器创建一个脚本文件

[root@ianly ~]# vim /scripts/auto_push.sh

#!/bin/bash -ilex#根据查询进程的pidsource /etc/profile;pid=$(jps -l | grep test-main-1.0.jar | awk '{print $1}');#杀掉对应的进程,如果pid不存在,则不执行if [ -n "$pid" ]; thenkill $pid;while [ -n "$pid" ]do pid=$(jps -l | grep test-main-1.0.jar | awk '{print $1}');echo "Waitting...";sleep 1s;donefi#启动进程并忽略所有控制台日志cd /root/.jenkins/workspace/java-test/test-main/targetnohup java -Xms500m -Xmx500m -jar test-main-1.0.jar >/dev/null 2>&1 &echo "Started testmain-1.0 Success."

赋值执行权限

[root@ianly ~]# chmod a+x /scripts/auto_push.sh

在Post Step的shell Command中填写执行脚本的语句/bin/sh -x/scripts/auto_push.sh

配置完成,保存

在首页就可以看到刚刚创建的JOB,点立即构建

然后在控制台看输出信息

4. 访问项目

http://122.152.192.227:8080/springMvcDemo/

看到正常访问。

接下来,修改git仓库源码,然后重新构建,再次访问

目标

在本地写好代码,一旦提交到Git,通过web-hook,触发Jenkins的自动构建任务,Jenkins自动从Git上面拉取代码>安装依赖>打包>发送到部署的服务器等一系列操作。

简单来说,我本地写好代码,我提交到Git之后,就有个东西帮我打包发送到服务器。我不需要管这些事,我只要写代码、测试、推代码就完事了。

目前需要实现的就是这样的功能,但Jenkins能做的不只是这么多。不过对于我目前的项目来说足够了。

实现

安装ssh发送插件 - Publish Over SSH

见名知意,通过ssh发布,用来将打包好的项目用ssh连接的方式发送到部署的服务器,并且执行其他的命令。

1.通过系统管理—管理插件

页面直接ctrl+f搜索ssh,直接安装Publish Over SSH插件

2.配置ssh插件

这里要配置的部署网站的服务器,我采用的方式是密码登录,也可以配置密钥文件登录的。看你的喜好。

选择系统管理-系统配置

拉到最后面找到Publish over SSH

新增SSH - Server

name标识该服务器的

Hostname服务器的IP

Username填写服务器的用户

点开高级设置

勾选Use password authentication, or use a different key

Passphrase填写密码

填写完了点击Test Configuration测试下是否连接成功

3 安装nodejs插件

页面直接ctrl+f搜索nodejs,直接安装插件

安装nodejs插件

下载nodejs编译包

我们在window上是直接下载exe,双击安装就可以了,而在linux上不太一样。

我们先打开nodejs下载页面:/download/,选择合适的linux版本编译包

上传解压

tar -xvf /dataDak/node-v16.14.0-linux-x64.tar.xz -C /usr/local/

配置软链接

为了使nodejs能够全局使用,我们需要配置一下软链接(类似于快捷方式,如果安装的路径在/usr/local/bin/下不需要这一步操作),当然也是软连接到用户目录下/usr/local/bin/

软链接的命令很简单:ln -s 源文件 目标路径

选择系统管理-全局工具配置

选择新增 NodeJS

别名node 12.16.3

保存

4.新建项目配置

1 新建项目 - 选择自由风格项目

2 输入名称

3 源码管理选择你的项目的Git

我的文档项目访问是公开的,可以直接访问,如果是私有项目还需要配置一个可访问的账号才可以。就是下面Credentials选项。

4 构建触发器

勾选 GitHub hook trigger for GITScm polling,这是一旦我们推送代码就会触发构建。

5 构建环境

勾选Provide Node & npm bin/ folder to PATH,这是提供Node命令给我们使用。

6 增加构建步骤 - 执行shell

执行shell内容

由于内部的node环境和外部隔离,所以我们第一次使用的时候需要安装yarn和设置一些国内源。

这一步我们进行安装依赖和打包项目,并且将打包的项目压缩等待后续发送到部署的服务器上。

# 进入Jenkins工作空间下cxt-web项目目录cd /var/jenkins_home/workspace/cxt-web# 下面的命令只需要执行一次,后续可以删除#### npm切换为淘宝源npm config set registry http://registry./# 安装yarnnpm i yarn -g# yarn切换为淘宝源yarn config set registry https://registry.#### 安装项目中的依赖yarn# 打包yarn build# 进入生成打包文件的目录cd dist# 把生成的项目打包成压缩包,方便移动到项目部署目录tar -zcvf cxt-web.tar.gz *

vue-admin 事件使用的

npm install -g cnpm --registry=https://registry.# 安装项目中的依赖cnpm i#删除dist目录下的所有文件rm -rf ./dist/*cnpm install --save core-js# 打包npm run build:prod# 进入生成打包文件的目录cd dist# 把生成的项目打包成压缩包,方便移动到项目部署目录tar -zcvf cxt-web.tar.gz *

执行完成之后会在服务器生成cxt-web.tar.gz,下一步就是把这个文件发送到指定部署的服务器。进行解压。

7 增加构建后的步骤

这一步将上一步打包好的文件发送到服务器,并且解压。

push over ssh文件复制有个限制只能复制当前任务所在目录下的文件,很多时候文件无法复制就是因为这个限制导致的。那么我们可以换一种思路,在使用push over ssh插件之前,先把需要的文件复制到当前任务所在目录下。如:我的绝对路径是/root/.jenkins/workspace/cxt-web/dist/cxt-web.tar.gz ,那么Source files:dist/cxt-web.tar.gz , Remove prefix:dist/

特别注意:远程主机目录,这里是相对目录,即使目录前加 / 也会自动转为相对目录。绝对路径在定义远程主机时指定,如下图

备注:当Remote Directory为空时,目录默认为username所在的home目录(如root用户就是/root, test用户就是/home/test)

cd /datadisk/official_web\echo ">>>当前工作路径:"`pwd`\shopt -s extglob\echo ">>>删除:(.htaccess|.user.ini|cxt-web.tar.gz)之外的文件"\rm -rf !(.htaccess|.user.ini|cxt-web.tar.gz)\echo ">>>解压:cxt-web.tar.gz"\tar -zxvf cxt-web.tar.gz -C ./\echo ">>>移除:cxt-web.tar.gz"\rm -rf cxt-web.tar.gz\echo ">>>执行成功"

解决Nginx出现403 forbidden (13: Permission denied)

查看nginx的启动用户,发现是nobody,而为是用root启动的

命令:ps aux |grep"nginx: worker process"

将nginx.config的user改为和启动用户一致,

命令:vi conf/nginx.conf

8 测试构建

可以看到服务器有了构建之后的文件

9 访问下网站试试,nice😁

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。