jenkins+gitlab+maven+tomcat,该环境主要实现自动构建部署java web应用。

其工作流程是:提交代码到gitlab--jenkins触发构建任务--maven编译打包--jenkins将war包部署到tomcat。


安装JDK

#安装jdk1.8
tar zxvf jdk-8u77-linux-x64.gz
#设置环境变量
#vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_77
export JAVA_BIN=/usr/local/jdk1.8.0_77/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH


安装maven

wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
tar zxvf apache-maven-3.3.9-bin.tar.gz
#设置环境变量
MAVEN_HOME=/usr/local/apache-maven-3.3.9
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
#查看maven版本
mvn -v


安装jenkins

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
yum install -y jenkins
ln -s /usr/local/jdk1.8.0_77/bin/* /usr/bin/
#配置jenkins
vi /etc/sysconfig/jenkins
#启动jenkins
service jenkins start


安装gitlab

http://hz999.blog.51cto.com/10862775/1713523

http://lansgg.blog.51cto.com/5675165/1760578


root登录,修改jenkins用户设置:

vi /etc/passwd
#修改最后为/bin/bash,否则无法登录
jenkins:x:498:499:Jenkins Continuous Integration Server:/var/lib/jenkins:/bin/bash
#设置密码
passwd jenkins

设置jenkins用户git全局变量

su jenkins
git config --global user.name "Jenkins"
git config --global user.email "jenkins@abc.com"

生成秘钥

ssh-keygen -t rsa
#密码为空


gitlab添加jenkins公钥

wKioL1cKT83RIvUlAACDC4IitiY598.png


设置jenkins

系统管理-系统设置

JDK:

wKioL1cKUJOSfmeaAAArAAxlnRk365.png


maven:

wKioL1cKUN_DKFZlAAAslpzgmaw698.png


安装插件

Deploy to container Plugin

Gitlab Hook Plugin

GitLab Plugin


新建任务

wKioL1cKUaiTPXnzAAB5TM8u3J8295.png


源码管理,选择git

wKiom1cKUWKAEu3-AABZS2ngfoQ690.png


设置git认证方式为秘钥认证,设置私钥

wKioL1cKUqGQi5imAAD5tT0mbio402.png


构建触发器

wKioL1cKUv2AQyMzAABcThkd31s096.png

此选项为每次gitlab master分支每次变动都会触发构建流程。


构建

wKiom1cKU8vzVxDWAAAeJvDa7PA254.png


将构建后的war包部署到tomcat

wKiom1cKVF3wzvdhAAA72U9CfAc404.png


Manager user name和Manager password是tomcat的管理用户名和密码

#vi tomcat-users.xml
<role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>


设置gitlab web hooks

wKiom1cKUxGygvhXAACqE6yuqkc338.png

URL地址为jenkins触发器设置中的GitLab CI Service URL


参考文档:

http://www.thinksaas.cn/group/topic/378471/

http://www.360doc.com/content/14/0603/15/9552892_383278847.shtml