关键词:
前言
最近又重新弄了一下jenkins,虽然之前也有弄过但是都是在本地服务器部署,而且记录的不够详细,因此这次将写下详细部署过程。
一、下载并启动Jenkins
下载地址:https://jenkins.io/download/ ,选择下载war包
下载完成后用FTP上传到服务器上输入启动命令:nohup java -jar jenkins.war --httpPort=7070 > jenkins.out 2>&1 & ,后面参数是启动端口。
启动完成后浏览器打开http://ip:7070 进入jenkins操作页面,此时会出现一个页面要求你输入密码,此时回到linux控制台,输入tail -100f jenkins.out 查看启动日志,注意看日志,它会打印你的初始密码,复制初始密码并点下一步,后面的操作按提示来就可以了,可以安装推荐的插件也可以自己选,下面将进入JENKINS配置步骤。
二、配置JENKINS
点击jenkins 系统管理->插件管理 点击available(可选插件)选项卡 ,在右上角的搜索框搜索并安装如下几个插件:
1、Git plugin Git client plugin
4、Gitlab Hook Plugin(可选)
再次点击JENKINS的系统管理 -> 系统设置 ,找到Publish over SSH这一栏,如下图配置要发布到该服务器上的连接配置
参数说明:
name:可以随便起 hostname:连接IP地址 Remote Directory: 远程文件夹路径,发布的项目将会在此目录下
username:账号 password:密码 , 除了用账号密码连接外还可以通过private key连接,由于麻烦我在这选择了账号密码连接
全局工具配置
这个是基础配置,可不能忘了,分别配置它的JDK GIT 和MAVEN,如果本机已经有了,则输入安装路径即可,如果没有可以使用JENKINS的自动安装功能 ,看下图:
自动安装和手动配置二选一。
三、Jenkins任务配置
新建一个Jenkins任务,输入你的任务名称点确定,然后点配置进入该任务的配置页面。
1、配置源码管理:
找到源码管理点GIT,输入你的项目的GIT URL,如http://localhost:80/project.git ,下面的Credentials是凭据,点添加然后输入登陆gitlab的账号密码
2、配置Build
找到Build一栏,分别配置好Root POM和Goals and options ,root pom是你项目的pom.xml,goals and options是mvn的执行命令,可以填 :install -DskipTests ,不需要填mvn xxx
3、配置Post Steps
选择Add post-build step -> Send files or execute commands over SSH ,然后如下图 配置:
1、name是之前我们在系统配置里添加的远程服务器配置
2、Source files是哪些文件将被发布到远程服务器,可以使用匹配符如:**/*.jar or **/project.jar ,推荐这样填 :**/*.jar,build.sh (将build.sh也打包的因为是发布完可以直接运行该脚本)
3、Remove prefix是要删除的前缀文件夹,例:project/target/p.jar 输入移除前缀:project/target,那么部署后就不会有移除的那些文件夹路径了,推荐不要填,因为它不支持匹配符,只能填死路径 。
4、Exec commond是发布完成后要执行的shell命令,一般用它调用写好的sh脚本,对了如果这里没有Exec command这一栏的话,回到系统配置,找到之前配置远程服务器的地方点开高级配置,把disable exec 取消勾选。
一切准备就绪,最后填写build.sh!
四、Build.sh 重启脚本
这个脚本调了我很久,一开始不是没执行完就结束要么就是启动没反应,该脚本的大致作用是查找该目录下的所有jar文件,并使用nohup java -jar 启动,同时保存它的进程PID,下次启动前先获取PID 调用 KILL命令。
下面上脚本 ,代码上面有说明大家可以根据需要修改。
#!/bin/bash -ilex
#jenkin编译时调用的shell,仅使用在测试服务器上
#export BUILD_ID=dontKillMe这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。
source /etc/profile
#用于保存启动服务的PID
pid_path=/pids
#如果PID目录不存在,则创建
if [ ! -d "$pid_path" ]; then
mkdir $pid_path
fi
#遍历文件夹获取jar
for file in `find * -name "*.jar"`
do
#Jenkins中编译好的jar名称
jar_name=$file##*/
#获取运行编译好的进程ID,便于我们在重新部署项目的时候先杀掉以前的进程
pid=$(cat $pid_path/$jar_name.pid)
#rm -f $www_path/$jar_name
#杀掉以前可能启动的项目进程
kill -9 $pid
echo $jar_name
#启动jar,后台启动
#BUILD_ID=dontKillMe
BUILD_ID=dontKillMe nohup java -Xmx512m -Xms512m -Xmn200m -jar $file > $jar_name%-*.*.*-SNAPSHOT.jar.out 2>&1 &
#将进程ID存入到ufind-web.pid文件中 (pid统一路径)
echo $! > $pid_path/$jar_name.pid
done
大功告成,最后点立即构建试试效果吧!
PS:JENKINS支持定时自动构建和检测GITLAB代码变动自动构建,由于我目前使用的是多结构的maven工程,一次变动会导致所有项目重新打包,因此并没有使用这个功能,有需要的朋友可以搜索jenkins + gitlab webhook 通过gitlab的接口触发jenkins自动构建
2019-5-21更新升级了shell脚本=======================================
现在支持参数了,根据参数扫描指定的jar包,使用代码如:bash build.sh "service*.jar" "serviceB*.jar"
build.sh:
#!/bin/bash -ilex
#export BUILD_ID=dontKillMe这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。
export BUILD_ID=dontKillMe
source /etc/profile
pid_path=/PID
function findJar()
#遍历文件夹获取jar
for file in `find * -name "$1"`
do
#Jenkins中编译好的jar名称
jar_name=$file##*/
#获取运行编译好的进程ID,便于我们在重新部署项目的时候先杀掉以前的进程
pid=$(cat $pid_path/$jar_name.pid)
#rm -f $www_path/$jar_name
#杀掉以前可能启动的项目进程
kill -9 $pid
#启动jar,后台启动
#BUILD_ID=dontKillMe
BUILD_ID=dontKillMe nohup java -Xmx512m -Xms512m -Xmn200m -jar $file > $jar_name%-*.*.*-SNAPSHOT.jar.out 2>&1 &
echo $! > $pid_path/$jar_name.pid
done
#如果PID目录不存在,则创建
if [ ! -d "$pid_path" ]; then
mkdir $pid_path
fi
if [ $# -gt 0 ] ;then
for regx in $*
do
findJar $regx
done
else
findJar "*.jar"
fi
文章新地址:https://reiner.host/posts/e259bd66.html
jenkins高级用法(jenkins集成gitlab自动构建打包发布)(代码片段)
...能1.2.2配置构建触发器编写编译部署脚本2.0配置gitlab参数使用root账户登录到后台,点击AdminArea——》Settings——》Network勾选“Allowrequeststothelocalnetworkfromwebhooksandservices”在项目添加webhook点击项目——》Settings——》Integrations... 查看详情
jenkins自动构建gitlab项目
安装的plugin: -kubernetes:1.7.1 -workflow-aggregator:2.5 -workflow-job:2.21 -credentials-binding:1.13 -git:3.6.4   查看详情
jenkins结合gitlab实现提交代码自动构建(代码片段)
jenkins可以说是现在非常流行的一个继续集成工具,几乎所有的公司都在用,并且它也基本是devops的连接者,是一个比较核心的工具。主要记录以下两个:利用jenkins和gitlab的webhook结合,实现提交代码之后,自动触发jenkins的构建... 查看详情
使用jenkins+gitlab自动构建springboot项目,并部署到远程服务器上
前言最近又重新弄了一下jenkins,虽然之前也有弄过但是都是在本地服务器部署,而且记录的不够详细,因此这次将写下详细部署过程。 一、下载并启动Jenkins下载地址:https://jenkins.io/download/ ,选择下载war包下载... 查看详情
gitlab+jenkins+hook代码自动构建发布上线
Gitlab+Jenkins+Hook1、gitlab和jenkins的安装见:http://www.cnblogs.com/cuishuai/p/7544663.htmlhttp://www.cnblogs.com/cuishuai/p/7544775.html 2、gitlab配置1)创建一个project,并创建一个monkey的分支。2)对分支进行设置:点击project-> 查看详情
jenkins结合gitlab实现pipline的自动构建部署(代码片段)
部署jenkins与gitlab服务就在这不演示了,可以参考前面的两篇文章。1、jenkins配置自动构建部署1.1、基于sshkey拉取代码先在jenkins服务器上创建个sshkey,在把公钥配置到gitlab上面,再到jenkinsweb界面配置凭据,使jenkins来拉取代码。roo... 查看详情
gitlab自动化触发jenkins构建项目(代码片段)
一、整体流程二、Jenkins安装插件要实现gitlab自动触发的功能,我们需要安装一个插件GitlabHookPlugin。三、重新配置任务在之前的任务里面,在构建触发器多了一项,如下,我们记住上面的接口,地址是我们jenkins的访问地址。四、... 查看详情
企业级docker+jenkins+gitlab自动化流水线构建(代码片段)
...我们都希望通过自动化技术,加快项目的迭代。尤其是当使用微服务系统架构之后,功能的叠加,对应服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化。因此,传统的人工部署已经心有余而力不足,... 查看详情
创建jenkins构建触发器,代码提交至gitlab即自动触发构建
...择安装登录gitLab,生成一个PersonalAccessTokens 进入Jenkins,添加apitoken,路径:首页--》凭据--》添加凭据添加后再次打开,如图所示 然后打开系统管理,进入系统设置,配置gitLab然后进入job,进行配置进入GitLab,打开... 查看详情
jenkins+gitlab集成实现自动构建(代码片段)
Jenkins+gitlab集成后,实现的功能是开发写好代码提交至gitlab上,当开始push到gitlab上之后,jenkins自动帮我们立即构建一、安装gitlab钩子脚本注意:jenkins不论想实现什么功能,都需要安装插件!!依次点击:系统管理==>>插件管... 查看详情
搭建jenkins,gitlab自动化打包部署项目(代码片段)
安装步骤:1.Docker-compose构建jenkins环境2.Docker-compose构建gitlab环境3.Jenkins,Gitlab自动化打包部署项目1.Docker-compose构建jenkins环境1、创建docker在主机的jenkins数据映射目录mkdir-p/data/jenkins_homechown-R777/data/jenkins_home2、用docker- 查看详情
[ci]构建触发器,实现当gitlab有push动作时候,jenkins自动拉代码.
构建触发器,实现当gitlab有push动作时候,jenkins自动拉代码.?拉取gitlab代码库:jenkins安装git插件配置gitlab服务器和jenkins服务器身份互信jenkins服务器生成一对rsakey.复制公钥到gitlabwebdashboard添加 在jenkinsCredentials里添加privatekey. 接下去... 查看详情
linux里面gitlab上传后,为啥要用jenkins构建?
...情况下,开发人员可能希望将代码推送到GitLab存储库后,使用Jenkins自动执行构建、测试和部署任务。这可以帮助他们更快地完成这些任务,并减少手动工作量。此外,使用Jenkins还可以帮助开发人员监控代码更改并进行版本控制... 查看详情
gitlab+jenkins持续集成
构建: 需要将jenkins服务器上 jenkins用户的公钥发送给 目标服务器的gs用户,使得在jenkins上能用gs免密登录目标服务器自动化构建需要配置gitlab的钩子,并在jenkins上做配置 自动构建后,邮件通知 查看详情
《jenkins从零到壹》jenkins集成gitlab自动化构建(java小虚竹建议收藏)(代码片段)
...了,分享给我的粉丝,同时也分享给大家。Jenkins使用教程相关系列目录环境准备安装jenkins:0❤️Jenkins从零到壹❤️:安装-windows使用jenkins.msi安装安装gitlab:《gitlab从零到壹》基于docker-gitlab安装jenkins配置安装插件安装... 查看详情
jenkinsgitlabgitlab自动触发jenkins构建(代码片段)
简介:尽管GitLab有内建的GitLabCI,但它远没有Jenkins那么强大好用。我们向GitLabpush代码,或执行其它一些操作时,GitLab可以将这些事件通知给Jenkins,triggerJenkins工程的构建自动执行。操作步骤:1、Gitlab配置1.1、创建个人访问令牌... 查看详情
docker+harbor+jenkins+gitlab自动化cicd构建
...构简介2.Gitlab部署和实践3.Docker部署4.Harbor私有仓库部署5.Jenkinspipeline项目持续集成实践6.整体架构参考文献1.实现CICD的架构简介本实践介绍了利用Jenkins和docker技术,如何实现CI/CD的各环节的步骤,包括代码检出,构建镜像,应用... 查看详情
使用 Jenkins 构建 GitLab 合并请求
】使用Jenkins构建GitLab合并请求【英文标题】:BuildGitLabmergerequestwithJenkins【发布时间】:2016-07-1113:50:51【问题描述】:我知道GitLab和Jenkins之间都有集成点,但是由于我无法控制的原因,我无法使用任何一个。向作业传递参数很容... 查看详情