案例:最近打算为公司搭建Jenkins+maven+svn+tomcat持续集成环境。此博客先大致介绍Jenkins,以及各种安装配置方式,后续则持续介绍其具体组合svn,GItLab,maven,Ant,加其它插件的使用方法。
Jenkins:
1.1)简介:
开源项目,一个可扩展的持续集成引擎。提供了一种易于使用的持续集成系统,能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。还做到持续编译和发布软件项目,这使得开发者很容易把他们的改动集成到项目中,让用户能更加便利的获取编译和测试版本等。
1.2)作用:
1.2.1)持续、自动地构建/测试软件项目。
1.2.2) 监控一些定时执行的任务。
1.3)特性:
1.3.1)易于安装-只要把 jenkins.war 部署到 servlet 容器,不需要数据库支持。
1.3.2)易于配置-所有配置都是通过其提供的 web 界面实现。
1.3.3)集成 RSS/E-mail 通过 RSS 发布构建结果或当构建完成时通过 e-mail 通知。
1.3.4)生成 JUnit/TestNG 测试报告。
1.3.5)分布式构建支持 Jenkins 能够让多台计算机一起构建/测试。
1.3.6)文件识别:Jenkins 能够跟踪哪次构建生成哪些 jar,哪次构建使用哪个版本的 jar 等。
1.3.7)插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。
1.4)常用组合
1.4.1)Jenkins+maven(Ant)+svn+tomcat+其它插件
1.4.2)Jenkins+maven(Ant)+GItLab+tomcat+其它插件
......
1.5)安装(两种方式)
1.5.1)yum方式安装
官方文档:
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions
1.5.1.1)安装java和tomcat(分别用的tomcat7和jdk1.7版本)
[root@node5 ~]# java1.7 -version java version "1.7.x" Java(TM) SE Runtime Environment (build 1.7.x) Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode) [root@node5 ~]# cd /usr/local/tomcat-7.x/bin/ [root@node5 bin]# ./version.sh Using CATALINA_BASE: /usr/local/tomcat-7.x Using CATALINA_HOME: /usr/local/tomcat-7.x Using CATALINA_TMPDIR: /usr/local/tomcat-7.x/temp Using JRE_HOME: /usr/local/jdk1.7.x Using CLASSPATH: /usr/local/tomcat-7.x/bin/bootstrap.jar:/usr/local/tomcat-7.x/bin/tomcat-juli.jar Server version: Apache Tomcat/7.x Server built: May 19 2014 10:26:15 Server number: 7.x OS Name: Linux OS Version: 2.6.32-504.el6.x86_64 Architecture: amd64 JVM Version: 1.7x JVM Vendor: Oracle Corporation [root@node5 bin]#
1.5.1.2)yum安装jenkins
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key yum install jenkins -y
1.5.1.3)防止Jenkins内存溢出
vi /etc/sysconfig/jenkins #JENKINS_USER="root" #JENKINS_PORT="8080" JENKINS_JAVA_OPTIONS="-Xms1024m -Xmx1024m -XX:PermSize=512M -XX:PermSize=1024M"
1.5.1.4)开启Jenkins服务
1.5.1.5)访问:
http://IP:8080/(根据自己定义的ip和端口)
默认密码可以在日志看到,或者指定文件里。
/var/lib/jenkins/secrets/initialAdminPassword [root@node5 ~]# ll /var/log/jenkins/jenkins.log -rw-r--r-- 1 jenkins jenkins 114057 8月 9 23:37 /var/log/jenkins/jenkins.log [root@node5 ~]#
1.5.1.6)安装完成界面:
1.5.2)War包形式(推荐)
1.5.2.1)官网https://jenkins.io/ (建议生产选择TLS稳定版)
1.5.2.2)上传到站点下,重启tomcat(java -jar jenkins.war也可以)
[root@node5 webapps]# pwd /usr/local/tomcat-7.x/webapps [root@node5 webapps]# ll 总用量 68160 drwxr-xr-x 14 root root 4096 8月 8 13:05 docs drwxr-xr-x 7 root root 4096 8月 8 13:05 examples drwxr-xr-x 5 root root 4096 8月 8 13:05 host-manager drwxr-xr-x 10 root root 4096 8月 8 16:58 jenkins -rw-r--r-- 1 root root 69770196 12月 21 2016 jenkins.war drwxr-xr-x 5 root root 4096 8月 8 13:05 manager drwxr-xr-x 3 root root 4096 8月 8 13:05 ROOT [root@node5 webapps]# killall -9 java [root@node5 webapps]# /etc/init.d/tomcat-7.x start Using CATALINA_BASE: /usr/local/tomcat-7.x Using CATALINA_HOME: /usr/local/tomcat-7.x Using CATALINA_TMPDIR: /usr/local/tomcat-7.x/temp Using JRE_HOME: /usr/local/jdk1.7.x Using CLASSPATH: /usr/local/tomcat-7.x/bin/bootstrap.jar:/usr/local/tomcat-7.x/bin/tomcat-juli.jar Tomcat started. [root@node5 webapps]#
1.5.3)访问:
1.5.3.1)根据提示找密码
[root@node5 .jenkins]# cd secrets [root@node5 secrets]# ls filepath-filters.d jenkins.model.Jenkins.crumbSalt org.jenkinsci.main.modules.instance_identity.InstanceIdentity.KEY hudson.util.Secret jenkins.security.ApiTokenProperty.seed slave-to-master-security-kill-switch initialAdminPassword master.key whitelisted-callables.d [root@node5 secrets]# cat initialAdminPassword 58b779da51484504a8649de0aada616e [root@node5 secrets]#
1.5.3.2)根据提示安装插件(可根据建议,也可以自定义安装插件,最好先跳过插件,需要什么安装什么),这里我就按照建议的来了。
提示,会有个别插件不能按照,暂时跳过即可。建议自己要安装的插件
Maven Project Plugin,Subversion Plugin,Checkstyle Plugin,Findbugs Plugin
PMD Plugin,Warnings Plugin等。
1.6)svn准备
[root@node3 ~]# ps aux|grep svn|grep -v grep root 1217 0.0 0.0 152864 760 ? Ss 14:58 0:00 /usr/bin/svnserve -d -r /usr/local/svndata --listen-port 9000 [root@node3 ~]#
1.7)maven安装配置
1.7.1)简介
Jenkins支持FreeStyle工程和Maven工程。
maven是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性,利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。
[root@node3 ~]# tar xf apache-maven-3.3.9-bin.tar.gz [root@node3 ~]# mv apache-maven-3.3.9 /usr/local/maven [root@node5 ~]# cat /etc/profile.d/maven export MAVEN_HOME=/usr/local/maven/ export PATH=$PATH:$MAVEN_HOME/bin export MAVEN_HOME [root@node3 ~]# source /etc/profile.d/maven [root@node5 ~]# mvn -v Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00) Maven home: /usr/local/maven Java version: 1.7.x, vendor: Oracle Corporation Java home: /usr/local/jdk1.7.x/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "linux", version: "2.6.32-504.el6.x86_64", arch: "amd64", family: "unix" [root@node5 ~]#
到此,基本环境搭建完成,后续将介绍Jenkins配置和插件的整合使用。