想搞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

最后就大功告成了。

Logo

更多推荐