Jenkins部署java项目

Jenkins部署java项目(java项目为主)java

 

 

1、部署java项目-建立私有仓库nginx

 

java的项目是须要编译和打包的
编译和打包用maven完成,因此需安装mavengit

 

001机器上操做:github

本次实验,采用git私有仓库的形式,涉及到配置密钥
准备工做:web

本身申请一个私有git仓库(coding.net/github.com/g.lishiming.net)
生成密钥对
把公钥放到git服务端:        cat /root/.ssh/id_rsa.pub   把001机器上的公钥复制过来

此处使用的github.com的仓库,建立私有的(Private)项目,而后按照页面进行操做apache

 

在本地修改README.md,而后上传到仓库,刷新页面看是否修改为功。vim

2、部署jiava项目-下载zrlog源码api

下载zrlog的源码 https://codeload.github.com/94fzb/zrlog/zip/master 
下载的文件为zip压缩文件,须要解压unzip
下载到外面的目录
mv  zrlog-master/* java/
cd java/
git add .
git commit -m "add zrlog"

而后用git push到新建的私有仓库里,回到页面刷新

3、安装tomcattomcat

002机器上操做:服务器

在另一台机器上安装jdk + tomcat,其中jdk能够为openjdk,版本1.8,tomcat用来运行zrlog

能够参考    https://my.oschina.net/u/4093217/blog/3054237    安装

 

jenkins用到了tomcat管理界面的管理入口,须要配置管理员的用户
页面直接输入ip便可,默认80端口
此处的tomcat端口改为了80,须要关闭nginx,tomcat端口修改:vim /usr/local/tomcat/conf/server.xml

vim /usr/local/tomcat/conf/tomcat-users.xml 
在最后面的</tomcat-users>前插入以下内容

<role rolename="admin"/>    
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user name="admin" password="tobe_jiang" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />  定义管理员用户为admin,密码为tobe_jiang

重启tomcat,先关闭在启动

/usr/local/tomcat/bin/startup.sh         //启动服务

/usr/local/tomcat/bin/shutdown.sh     //关闭服务

页面刷新后,点击manager webapp,进入后显示403

须要配置: vim /usr/local/tomcat/webapps/manager/META-INF/context.xml

增长    192.168.183.*,一 “|”分割,容许此ip段访问

而后重启tomcat,刷新页面,点击manager webapp,就会出现用户认证的弹窗

 

输入刚刚配置的用户名和密码进入,页面中是能够进行的操做

为了让jenkins可以访问到这个页面,经过后台api接口发布war包,maven能够把java源码编译成war包(.war的包)
经过manager后台接口传过来自动发布,解压

 

 

4、部署java项目-安装maven

001机器上:

安装maven,要安装到jenkins所安装的机器上
经过maven编译java源码并打包

官网下载地址:  https://maven.apache.org/download.cgi

cd /usr/local/
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
tar zxvf apache-maven-3.6.1-bin.tar.gz

/usr/local/apache-maven-3.6.1/bin/mvn --version

配置jenkins:

jenkins -> 系统管理(Manage Jenkins) -> 全局工具配置(Global Tool Configuration)->Maven 配置

/usr/local/apache-maven-3.6.1/conf/settings.xml   

下拉找到:Maven->新增Maven

不使用自动安装,手动填写路径/usr/local/apache-maven-3.6.1

5、部署java项目-安装插件

系统管理 -> 管理插件,检查是否已经安装 Maven Integration 和 Deploy to container ,若没有安装则须要安装这两个插件
Maven Integration 建立maven项目时用到的插件
Deploy to container 把war包发布到远程tomcat

安装完插件后,须要重启jenkins:
systemctl restart jenkins

建立新任务:
登陆jenkins,点击“新建”,任务名称自定义(个人叫作java)
选择“构建一个maven项目”
点击“肯定”

此处出现构建一个maven项目

 

6、部署java项目-构建job

进入新建立的任务配置,选择源码管理:
选择 “git”, Repository URL填写git的SSH地址,并配置对应的key,最好事前先在jenkins这台机器上可以直接远程git操做私有仓库

出现此提示说明这个仓库是私有仓库,须要配置对应的用户和key

点击添加下的jenkins,类型安装以下选择,填写用户名和私钥,点击添加

回到源码管理页面选择git,以前的报错就没有了,说明配置正确

构建触发器、构建环境、Pre Steps保持默认

Build:
“Root POM”为pom.xml

Goals and options 填写 clean install -D maven.test.skip=true      编译以前clean,跳过测试,此处也能够留空

Post Steps、构建设置保持默认

先发送邮件测试:

点击“增长构建后操做步骤”选择“Editable Email Notification”
Project Recipient List,改成$DEFAULT_RECIPIENTS,xxxx@qq.com, 意思是增长额外一个收件人
点击右下角的“Advanced settings”,定位到“Triggers”,而后点击下方的“Add Trigger”,选择always,表示老是发送,能够增长发邮件的条件。
最后点左下角的“保存”
以后就能够点左侧的“当即构建”,而后查看对应任务的控制台输出(Console Output)

此处在控制台输出中报错,说明jdk配置有问题,默认使用的openjdk

部署java项目-手动安装jdk:

系统设置->全局设置(Global Tool Configuration)->JDK
点击新增JDK
取消自动安装(Install automatically)的勾选,填写服务器上jdk的安装目录,而后应用、保存

安装目录:     /usr/local/jdk1.8

重启服务:    systemctl restart jenkins

回到Maven project java这个任务继续点击Build Now进行构建

完成后会生成war包,并发送邮件

进入Maven project java这个任务配置:

构建后操做:

点击“增长构建后操做步骤”选择“Deploy war/ear to a container”

WAR/EAR files  填写    **/*.war        表示所有的war包

Contex path留空,Containers选择Tomcat 8.x,根据安装版本选择

Tomcat URL填写要把war包发布到的那台机器的url,如http://192.168.183.33,默认80端口,不须要写端口,如http://172.7.15.114:8080这个是带端口的

Credentials这里须要点击右侧的Add,添加访问tomcat时的用户名和密码

而后保存,当即构建,完成后,会在目标机器的tomcat/webapps目录下看到部署的目录,访问时直接使用目标的ip加上生成的目录名称便可