Jenkins linux rpm 安装和使用,打包,远程发布,轮询SVN代码更新打包发布
想搞jenkins 初衷,是因为现在的公司,人少也没几个人会这个,但是Jenkins真的是好用。而且这种工具基本上是互联网的标配。没有真的说不出口。所以花了一点时间搭建这个环境。1. 安装jenkins 安装依赖JDK,JDK的安装就不重复了。因为我的安装环境 是内网,权限都是需要开权限的,所以下载好安装包,放入linux系统目录里面下载链接:https://pkg.jen...
想搞jenkins 初衷,是因为现在的公司,人少也没几个人会这个,但是Jenkins真的是好用。而且这种工具基本上是互联网的标配。没有真的说不出口。
所以花了一点时间搭建这个环境。
1. 安装
jenkins 安装依赖JDK,JDK的安装就不重复了。
因为我的安装环境 是内网,权限都是需要开权限的,
所以下载好安装包,放入linux系统目录里面
下载链接:https://pkg.jenkins.io/redhat-stable/jenkins-2.121.1-1.1.noarch.rpm
下载的是 rpm 包.
使用linux 命令安装:sudo rpm -ih jenkins-2.121.1-1.1.noarch.rpm
自动安装完成之后:
/usr/lib/jenkins/jenkins.war WAR包
/etc/sysconfig/jenkins 配置文件
/var/lib/jenkins/ 默认的JENKINS_HOME目录
/var/log/jenkins/jenkins.log Jenkins日志文件
安装完成之后启动jenkins
启动:sudo service jenkins start (不要把sudo 丢了,)
停止:sudo service jenkins stop
在浏览器里面输入:http://192.168.23.10:8080
系统给的 初始密码,自己去安装目录去找
cat /var/lib/jenkins/secrets/initialAdminPassword
登录成功之后,会让你安装一堆插件。
但是我是内网环境,没有网络权限,所以一个插件也安装不上。
所以整理了网络需要的网络权限。
我这里配置的是 etc/hosts 文件
52.202.51.185 updates.jenkins.io
52.202.51.185 updates.jenkins-ci.org
52.202.51.185 mirrors.jenkins-ci.org
151.101.24.215 repo.maven.apache.org
202.121.199.235 mirrors.shu.edu.cn
101.6.8.193 mirrors.tuna.tsinghua.edu.cn
这些权限开好了之后,就再来安装插件
补充一个错误解决办法。
我在安装好之后,在使用的过程中,使用maven 项目编译打包项目的时候,一直报错: xxxx.pom (没有权限)。
查看项目确实是编译成功了,但是Jenkins 就是报 没有权限的错误。
后来终于知道了。是应为Jenkins安装之后会默认创建一个 jenkins的用户,使用sudo service jenkins start 启动,默认是使用这个jenkins用户启动的。
虽然项目编译成功了,但是maven项目编译后,会把编译的文件发布到 maven的本地仓库,但是jenkins 对MAVEN 仓库没有权限,所有才会有这种问题。
解决办法:修改 jenkins的配置文件:/etc/sysconfig/jenkins
将 JENKINS_USER=”jenkins” 修改为
JENKINS_USER=”root”
重新启动 jenkins 问题解决
2.插件安装
首先全局工具配置
主要是安装 jdk 和 maven .
jdk 和 maven 预先安装在linux的环境里面,只需要把路径指向一下,就OK
再来说插件
因为我需要下载SVN 的代码,maven编译打包,发布到远程环境。所以需要一下几个插件
SVN 1.4 Compatibility Plugin svn 插件
Maven Integration plugin maven插件
publish over ssh 发布到远程机器
deploy t container plugin
POLL SCM svn轮询插件
选择了这些插件之后,还有顺带的安装很多其他的插件,没有关系的。下载安装就好。
3.运行任务
我们使用的是maven构建项目的方法,所以如下图
1.配置代码的SVN路径
看到我的图片SVN路径后面有一个 @HEAD 标签了么?
如果不加这个标签,jenkins默认和 SVN仓库同步代码是根据时间戳来比对代码是否有更新。 如果SVN 的机器时间和jenkins 服务器时间戳不一致,会导致代码更新的不及时。或者不能更新过来。
加了这个 @HEAD标签就能解决这个问题。
HEAD 是SVN的一个关键字 标识版本库里面最新的一个版本
再一个问题就是 添加的账号一定要有你下载的代码路径的权限,不然会下载失败
2. 构建触发器
这里面主要有2个构建方式,一个是定时构建,一个是轮询构建
定时构建:每隔一段时间,或者是每天,构建
轮询构建:每隔一段时间,或者是每天 同步SVN 或者代码仓库,有变更才会构建
3.构建环境
构建环境,在我这里主要用户把打包的项目发布到远程服务器。
要使用这个功能,就需要先配置SSH
有几台服务器,就添加几个SSH server
配置好基本的SSH 配置之后
再来配置 构建环境
我这配置构建环境选的是
Send files or execute commands over SSH after the build runs
在完成构建任务之后,再执行SSH任务
如果有别的需求,可以根据实际情况选择不同的
附上脚本
#!/bin/bash
export BUILD_ID=dontkillme #必须加
TOMCATTHREAD=`ps aux | grep tomcat8081 | grep -v grep`
if test -z "$TOMCATTHREAD"
then
echo "TOMCAT NOT START"
else
THREADLIST=(${TOMCATTHREAD// / })
PID=${THREADLIST[1]}
kill -9 $PID
sleep 3s
fi
cd /usr/local/tomcat/tomcat8081
rm -rf ./webapps/smk_party.war
rm -rf ./webapps/smk_party
mv ./war_bak/smk_party.war ./webapps/smk_party.war
./bin/startup.sh
sleep 2s
4.build 设置
因为我们使用的是 maven 打包,就非常简单了
clean install -Dmaven.test.skip=true
最后就大功告成了。
更多推荐
所有评论(0)