1.安装jenkins(准备java环境,必须jdk8及以上)
下载JDK 1.8,上传到centos7系统上
http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1538988644_c7f213461e0c9f00c91a6a550db5f831
解压:tar -zxvf jdk-8u181-linux-x64.tar.gz
另存:
mkdir /usr/local/jdk/
mv jdk1.8.0_181/* /usr/local/jdk/
配置环境变量:
vi /etc/profile
JAVA_HOME=/usr/local/jdk
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar
export JAVA_HOME JRE_HOME PATH CLASSPATH
重新加载环境配置:source /etc/profile
下载jenkins:wget http://mirrors.jenkins.io/war/latest/jenkins.war
后台启动: nohup java -jar jenkins.war --ajp13Port=-1 --httpPort=9999 >temp.txt &
jenkins的docker镜像制作:请见码云 创建jenkins的docker镜像
2. 环境准备
git安装:
下载安装包:wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
依赖包(centos):yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
依赖包(ubuntu): apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
apt-get -y install gcc automake autoconf libtool make
解压:tar -zxvf git-2.9.5.tar.gz
进入解压包:cd git-2.9.5
编译:make prefix=/usr/local/git all
安装:make prefix=/usr/local/git install
maven安装:
解压:tar -zxvf apache-maven-3.3.9-bin.tar.gz
移到指定目录:mv apache-maven-3.3.9 /usr/local/maven
配置环境变量:vim /etc/profile
M2_HOME=/usr/local/maven
export PATH=${M2_HOME}/bin:${PATH}
重新加载环境配置:source /etc/profile
3.启动、配置
输入提示路径下的密码,安装默认的插件,设置管理员用户,确定jenkins根路径
【系统管理】->【全局工具配置】:
【系统管理】->【插件管理】:
【Safe Restart Plugin】 //重启jenkins系统
【Email Extension Plugin】 //由于Jenkins自带的邮件功能比较鸡肋,因此推荐安装专门的邮件插件
【maven integration plugin】 //该插件安装了,才能创建maven项目
【git plugin】 //从远程拉取代码
【publish over ssh】 //ssh远程登录
【SSH Plugin】 //SSH登录到一个远程服务器以执行必要的脚本
【系统管理】->【全局安全配置】:
【系统管理】->【系统设置】:
【SSH remote hosts】:
【邮件设置】:
【Publish over SSH】:
4.创建构建任务
【新建任务】:
任务名称->构建maven任务->确认
5.手动触发构建
【jenkins主页面】->【相应的构建任务】->【立即构建】
注:防火墙的shell命令:
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
firewall-cmd --reload 重新载入
firewall-cmd --zone=public --remove-port=80/tcp --permanent 删除
firewall-cmd --zone=public --query-port=80/tcp 查看
firewall-cmd --state 查看firewall是否运行
firewall-cmd --list-services 查看当前开了哪些端口
firewall-cmd --get-services 查看还有哪些服务可以打开
firewall-cmd --zone=public --list-ports 查看所有打开的端口
邮箱内容模版(Default Content):
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
本邮件由系统自动发出,无需回复!<br/>
各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br>
<td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>
</tr>
<tr>
<td><br />
<b><font color="#0B610B">构建信息</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>构建编号 : 第${BUILD_NUMBER}次构建</li>
<li>触发原因: ${CAUSE}</li>
<li>构建状态: ${BUILD_STATUS}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
<li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
<li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
</ul>
<h4><font color="#0B610B">失败用例</font></h4>
<hr size="2" width="100%" />
$FAILED_TESTS<br/>
<h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
<hr size="2" width="100%" />
<ul>
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
</td>
</tr>
</table>
</body>
</html>
配置模块友情链接:
docker+github+jenkins+maven自动化部署----邮件配置
docker+github+jenkins+maven自动化部署----提交代码到github时自动触发构建任务配置
docker+github+jenkins+maven自动化部署----代码检查和覆盖率检查SonarQube+JaCoCo+Jenkins+Maven配置