Jenkins部署java项目(java项目为主)
一、部署java项目-创建私有仓库
java的项目是需要编译和打包的
编译和打包用maven完成,所以需安装maven
001机器上操作:
本次实验,采用git私有仓库的形式,涉及到配置密钥
准备工作:
自己申请一个私有git仓库(coding.net/github.com/g.lishiming.net) 生成密钥对 把公钥放到git服务端: cat /root/.ssh/id_rsa.pub 把001机器上的公钥复制过来
此处使用的github.com的仓库,创建私有的(Private)项目,然后按照页面进行操作
在本地修改README.md,然后上传到仓库,刷新页面看是否修改成功。
二、部署jiava项目-下载zrlog源码
下载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到新建的私有仓库里,回到页面刷新
三、安装tomcat
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后台接口传过来自动发布,解压
四、部署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
五、部署java项目-安装插件
系统管理 -> 管理插件,检查是否已经安装 Maven Integration 和 Deploy to container ,若没有安装则需要安装这两个插件 Maven Integration 创建maven项目时用到的插件 Deploy to container 把war包发布到远程tomcat 安装完插件后,需要重启jenkins: systemctl restart jenkins 创建新任务: 登录jenkins,点击“新建”,任务名称自定义(我的叫做java) 选择“构建一个maven项目” 点击“确定”
此处出现构建一个maven项目
六、部署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加上生成的目录名称即可