Jenkins自动化部署

友若
• 阅读 184

引言

我们在开发过程中经常需要修改本地代码,并提交到git或svn。要运行程序则需要将svn或git上的代码编译并部署到web服务器。这个部署如果是手动的则每次都需要执行编译命令,再手动把war文件之类拷贝到服务器,最后重启tomcat,次数多了就会显得很繁琐。Jenkins就是为了解决自动化部署而生。

1. 下载安装Jenkins

安装前提是你已经装好了java跟tomcat。

1.1 点击download后最后有个war文件下载。点击下载到本地。
Jenkins自动化部署

然后放到tomcat的webapps目录下,注意文件超过了50M,需要修改Tomcat安装目录下的/manager/WEB-INF/web.xml。把以下配置注释掉。

<!-- <max-file-size>52428800</max-file-size> -->1.2 启动tomcat,浏览器访问localhost:8080/jenkins

出现以下界面,提示你输入密码。密码在红色字表示的文件中。

Jenkins自动化部署

选择安装推荐的插件。这里需要一些时间。

Jenkins自动化部署

创建管理员账户。

Jenkins自动化部署

这样就是安装完成了。

Jenkins自动化部署

2. Web服务器端安装Maven、git

下载Maven,用来编译工程。下载git用来自动获取git服务器最新代码。

2.1 Maven官网找到下载地址,通过Wget获取Maven官网 maven.apache.org/download.cg…cd /usr/local/
下载
wgethttp://us.mirrors.quenda.co/apac ... en-3.6.3-bin.tar.gz
解压缩
tar xvzf apache-maven-3.6.3-bin.tar.gz2.2 设置Maven环境变量

编辑/etc/profile,末尾添加以下两行。

M2_HOME=/etc/local/apache-maven-3.6.3
export PATH=${M2\_HOME}/bin:${PATH}

重载设置

source /etc/profile

验证是否安装成功

mvn -v2.3 安装gityum install git3. 将Web服务器注册到Jenkins节点中

如果你的Jenkins安装到了Web服务器中,可以省略这个步骤,因为Jenkins默认创建了一个叫做master的节点代表Jenkins安装的机器。相反,如果Jenkins装到了本地机器,为了能够部署到远程的Web服务器中,你需要本步骤把Web服务器作为节点注册到Jenkins中。如下图,就是已经系统建好的了master,跟我创建的测试节点TestEnv。

Jenkins自动化部署

节点的创建步骤如下。首先选择Build Executor Status。

Jenkins自动化部署

点击新建节点。

Jenkins自动化部署

输入节点名,选择Permanet Agent,点击OK。

Jenkins自动化部署

接下来填写配置。

  • Remote root directory 是你的在web服务器上的工作根目录。我这里用root登录,把工作目录放在/root/jenkins下。
  • Launch agent agents via SSH。这个代表用SSH登录。
  • Host 填写你的Web服务器地址
  • Credentials 填写你的登录账户密码
  • Host Key Verification Strategy 选择Known hosts file Verification Strategy

最后点击保存就可以完成节点的创建。

Jenkins自动化部署

4. Jenkins创建任务

点击 创建新任务 进入项目创建界面

Jenkins自动化部署

填写任务名,选择自由风格的工程。

Jenkins自动化部署

这里要选择节点,也就是刚才我们注册的TestEnv节点。

Jenkins自动化部署

如下图,我使用git,所以需要填写以下内容。

  • Repository URL, git的http仓库地址
  • Credentials, 登录需要的用户名密码
  • Branch Specifer , git的分支
  • Check out to s sub-directory, 任意填写一个子目录名用于下载代码

Jenkins自动化部署

最后,添加要执行的shell,并且保存设置。

Jenkins自动化部署

代码如下。

BUILD_ID=DONOTKILLME

. /etc/profile

export PROJ_PATH=`pwd`
export TOMCAT_APP_PATH=/usr/local/apache-tomcat-9.0.30

编译代码

cd $PROJ_PATH/siled
mvn clean install

删除原有的war文件

rm -rf $TOMCAT_APP_PATH/webapps/*.war

关闭tomcat

$TOMCAT_APP_PATH/bin/shutdown.sh

拷贝新的war

cp $PROJ\_PATH/siled/target/\*.war $TOMCAT_APP_PATH/webapps/

重启tomcat

$TOMCAT_APP_PATH/bin/startup.sh5. 尝试部署

点击Build now,立即构建。

Jenkins自动化部署

构建完成后会有如下的结果。蓝色表示构建成功。数字表示次数。点击数字

Jenkins自动化部署

点击控制台输出。

Jenkins自动化部署

可以确认结果是成功的。

Jenkins自动化部署

6. 验证部署应用

访问应用地址,可以看到自动部署成功。

Jenkins自动化部署

点赞
收藏
评论区
推荐文章
菜鸟阿都 菜鸟阿都
4年前
springboot+vue项目linux环境部署
项目部署是一个程序员必备的技能,当项目开发过程中,需要将项目部署在开发服务器上,进行自测,或协助运维,测试进行环境的搭建配置,学会了项目部署,你就是团队中最亮的那个仔。项目简介后端:springboot项目【打包为jar包】前端:vue项目【通过cli3搭建】目标服务器:liunx操作系统使用工具xshell:通过命令操作服务器sftp:上传安装包到服务器部
Easter79 Easter79
3年前
svn与git操作对比 (未来有空做一个 svn与git实战对比 )
svn是集中式的,git是分布式的,但是我们日常使用的都是按照集中式唯一服务器仓库的方式来去做的,最终我们的代码都要提交到一个唯一仓库中。他们最大的区别是本地工作拷贝的工作方式不同,一、svn本地工作拷贝,包括分支都是目录,直截了当,看到的就是服务器的,svnupdate更新服务器到本地;svncommit就是提交到服务器
Easter79 Easter79
3年前
springboot热部署实战
每次代码改动后都需要重新手动Run项目,心累,在网上找了下,发现SpringBoot提供了热部署的方案,改动代码后自动编译打包,现在将热部署的配置方法记下来:第一步:在pom.xml中添加依赖,导入springbootdevtools<dependency<groupIdorg.springframework
爱库里 爱库里
4年前
部署Go语言项目的 N 种方法
本文以部署GoWeb程序为例,介绍了在CentOS7服务器上部署Go语言程序的若干方法。独立部署Go语言支持跨平台交叉编译,也就是说我们可以在Windows或Mac平台下编写代码,并且将代码编译成能够在Linuxamd64服务器上运行的程序。对于简单的项目,通常我们只需要将编译后的二进制文件拷贝到服务器上,然后设置为后台
Stella981 Stella981
3年前
CentOS 7 部署Gitlab+Jenkins持续集成(CI)环境
持续集成概述及运行流程:持续集成概述:持续集成(Continuousintegration)持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进行自动化测试 开发→代码编译→测试持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境持续部署:在持续交付的基础上,把部署到
Stella981 Stella981
3年前
Jenkins 自动化部署上线
转载于互联网jenkins自动化部署项目,通过jenkins部署来节省运维时间,不需要手动cp上线及版本发布!(https://oscimg.oschina.net/oscnet/fd0711489bde0b14dde0599acc4b202de78.jpg)Jenkins自动化部署上线
Wesley13 Wesley13
3年前
Javaweb入门基础(尚硅谷,佟刚老师)笔记(一)
\恢复内容开始第一个WEB应用程序:开发,并部署到Tomcat服务器下运行1)在eclipse新建一个javaProject2)在Java项目下创建WEB开发的目录结构:\WebContentWEBINFclasses(编译后的class文件必须放在该目录下)libweb.xml(从  \\a
Stella981 Stella981
3年前
Jenkins + Gogs 搭建DevOps环境
Gogs:1\.安装过程中,对外访问URL可配置公网IP地址:端口号,因为这个选项会影响未来git仓库的地址。2\.新建好仓库后,如果想实现提交代码后自动触发编译,则需要配置对应代码仓库的Webhook:仓库设置管理Web钩子AddanewWebhookGogs推送地址:http://Jenkins服务器地址/gogswe
Easter79 Easter79
3年前
SpringBoot打成war包,部署到Tomcat服务器
前言 SpringBoot默认达成jar包,默认使用内置的Tomcat。但考虑到项目需要打成war包部署到外部的Tomcat服务器中。把SpringBoot项目按照平常的web项目一样发布到tomcat容器下。1、修改pom.xml文件将默认的jar(默认创建项目的时候没有packaging)方式改为war。
Stella981 Stella981
3年前
SpringBoot打成war包,部署到Tomcat服务器
前言 SpringBoot默认达成jar包,默认使用内置的Tomcat。但考虑到项目需要打成war包部署到外部的Tomcat服务器中。把SpringBoot项目按照平常的web项目一样发布到tomcat容器下。1、修改pom.xml文件将默认的jar(默认创建项目的时候没有packaging)方式改为war。
Wesley13 Wesley13
3年前
Maven 项目自动编译
maven结构的项目,我们在每次修改代码后都会需要手动编译,下面命令可以解决此问题,只要代码修改,会自动帮你编译。进入项目目录执行:mvnUeclipse:cleaneclipse:eclipse然后重新执行mvncleanpackage启动你的servlet容器看看吧。Maven库:http://