初见Jenkins

基于每次运行代码都需要在本地打包后在上传到服务器,实在是厌倦,了解到Jenkins,可以自动拉取git或者gitee的代码到服务器进行自动打包以及部署,记录如下:

1.访问Jenkins官网https://www.jenkins.io/zh/

下载war包,上传到服务器中你喜欢的位置。

2.配置服务器环境变量,包括java,maven,git。注意: 配置java的时候,java5之后就不需要设置CLASSPATH这个环境变量了。

##############JDK1.8####################
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre

############## maven ###################
export MAVEN_HOME=/usr/local/apache-maven-3.6.3

##############node.js###################
export NODE_PATH=/usr/local/node-12.18.2

############## git #####################
export GIT_PATH=/usr/local/git

############# Jenkins #################
export JENKINS_HOME=/data/jenkins

export PATH=${JAVA_HOME}/bin:${MAVEN_PATH}/bin:${NODE_PATH}/bin:${GIT_HOME}/bin:${JENKINS_HOME}:$PATH

这些配置就不用多说了,不安装java怎么运行jar包,是吧。配置JENKINS_HOME这个环境变量是因为第一次没有配置这个变量,系统默认将数据放置在root下,查找不方便,配置完成之后,重新运行Jenkins,刷新页面即可。

3.运行jenkins,加上参数--httpPort=端口号,是指定端口运行,默认是8080端口。

java -jar ./jenkins.war --httpPort=8081

或者后台运行

nohup -jar ./jenkins.war --httpPort=8081 &

注意运行日志,如果配置jenkins_home环境变量成功,那么会运行日志会打印出以下信息:

4.浏览器打开,ip地址+端口号,如果访问不成功,看看java进程是否正常运行,以及端口设置防火墙等有没有开启。云服务器需要配置安全组才能访问ip+端口号成功。出现以下图片,恭喜你运行jenkins成功。

5.进入jenkins,配置相关数据

1)插件管理,需要安装以下插件:

插件1:Publish over SSH

插件2:Deploy to container Plugin

插件3:如果用gitee的话还需要安装gitee插件

2)系统配置,Jenkins Location,这里需要填写Jenkins URL为访问jenkins的IP地址

下一步是配置远程服务器,用于后续打包完成后发送到指定的服务器。可以生成秘钥登录服务器,也可以直接填写账号密码。这里是预先设置,到下几步需要用到。这时候要注意的是Remote Directory。

3)全局工具配置

按照图上一步一步操作,最后点击应用。

4)全局安全配置,这里有点问题,我把权限全都开了,应该是需要有限制才对。

配置完成,点击应用。

二、新建项目。

注意你设置的项目名称,服务器会根据这个名称会生成对应的文件夹。我这里已经安装了gitee插件,故可以显示用gitee地址。

填写git地址,点击添加填写git的账号和密码。授权登录git接口用于拉取代码。

这个是生成触发jenkins重新拉取代码自动部署的接口,这个接口需要设置到git的回调操作中。

进入git对应的项目中

选择just the push event ,监听有代码push之后请求这个url

这里是填写jenkins从git中拉取代码到服务器之后,需要执行的命令,这Maven版本就是全局设置里的设置的mvn。

重点来了-_-#!

配置构建后的操作,也就是jenkins从git拉取代码到jenkins的workspace,以及mvn打包完成之后的操作。如果是多台服务器,这里是需要分发到对应的服务器中,并且运行,这样才是自动构建项目嘛。

在这里我遇到一个坑,就是Source files和Remove directory 的设置,导致一直发送jar包失败。

我的服务器设置了JENKINS_HOME=/data/jenkins/

多次测试后,感觉路径会自动拼接,最终路径为JENKINS_HOME + / + workspace + /项目名称

这里的项目名称是 jenkins_test,

那么目标文件的最终路径为 /data/jenkins/workspace/jenkins/ + Source files ,

假如jar包位置是/data/jenkins/workspace/jenkins_test/target/*.jar

那么source files 就应该设置成 target/jenkins-test.jar即可

Remove prefix = target/,这里的意思是,移除这个路径,也就是只保留source files中target文件夹下的内容,其他都不要

Remote Directory = www/jenkins,远程目录,也就是将上面的*.jar传输到远程服务器的哪个文件夹下。这里需要注意的是,也是会拼接文件夹路径。

在上面设置服务器登录账号和密码的时候,已经设置了一次Remote Directory=/home,这两个Remote Directory拼接起来就是一个完整的远程文件地址,例如这里设置为www/jenkins,那么完整的远程文件地址为:/home/www/jenkins

Exec Command:复制source files 到 Remote Directory之后执行的命令。在这里用Springboot作为测试,

这里填写,后面附上stop.sh和start.sh的代码

cd /home/www/jenkins
bash ./stop.sh
bash ./start.sh

点击应用,保存。进入工程,点击立即构建,在左下角会显示出正在进行的操作。

如果最终执行结果是下图,那么代表项目构建并传送成功。

在服务器中,查看是否有对应的*.jar或者其他对应的文件。

perfect!完成!

---------------------

stop.sh代码:


#!/bin/bash
echo "Stop Procedure : jenkins-test.jar"
#找到pid,kill -9 pid,关掉java进程
pid=`ps -ef | grep java| grep jenkins-test.jar|awk '{print $2}'` 
echo 'old Procedure pid:' $pid
if [ -n "$pid" ]
then
kill -9 $pid
fi

start.sh代码:

#!/bin/bash
echo 'Start the program : jenkins-test.jar'
chmod 777 ./jenkins-test.jar
echo '-------Starting-------'
nohup java -jar jenkins-test.jar &
echo 'start success'

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值