随着工作的要求,devops作为今年工作的一个重点,由此也引发了自己对于devops相关的工具和技术的学习和实践。基于上述背景,这个系列将逐步的介绍SVN的安装和配置、jenkins安装和配置、reviewboard、findbugs、checkstyle、sonar、testng、mockito等。【每个合格的程序员都是耐操的】

         上一节说了SVN的安装和配置,这一节说Jenkins的持续集成

一、目标

Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。它用于监控持续重复的工作,功能包括:
        1、持续的软件版本发布/测试项目。
        2、监控外部调用执行的工作
  上面这一小段化来自百度百科,那么这是什么意思呢?这可以从下面这样的场景来说。我们开发一个软件,设计、编码、测试、集成、发布,尤其编码后进行测试、集成、发布这样的环节,随着开发模式越来越向敏捷、迭代模式流行,也就会面对持续交付的问题越来越有压力,需要对这些环节进行有效的、持续的管理。Jenkins就是这样一个平台,可以有效的纳入,测试、集成、发布这些环节,串起来,给所有参与的人,一个可以查看和监控的平台。
简单的说,它是提高测试、集成、发布效率的工具。
本次实践的目标是:

       1、安装jenkins

       2、通过Jenkins 来构建任务,通过Jenkins,与SVN,Maven配合起来,完成从SVN上获取代码,通过Maven进行编译打包,完成后发送邮件,

(发布以后再说)

二、实践环境说明

Jenkins现在发展的很快,很多资料与自己的版本不一致,其实是因为版本的不同,所以有必要交待一下环境:

        1、windows 虚拟机:192.168.136.100    SVN服务器

        2、Linux Centos虚拟机: 192.168.136.144   Jenkins服务、Maven 服务

        3、Jenkins的版本是 2.32 ,安装包为:jenkins-2.32.1-1.1.noarch.rpm 

三、Jenkins的安装

Jenkins的安装非常简单,可以下载war包,直接启动。Jenkins的war包,用Jetty来发布Http;也可以采用rpm包来安装,我采用的rpm包安装。

首先从网站上下载Jenkins,官网为:https://jenkins.io/index.html

的目标机是Centos,选择这个,

 

下载后,将安装包上传到Centos服务器上,采用rpm包安装的命令如下:

rpm -ivh  jenkins-2.32.1-1.1.noarch.rpm

这个执行后,就安装好了,要运行或者重启采用如下命令:

启动命令:  service  jenkins  start

重启命令:  service jenkins   restart


安装完成后,jenkins实际的安装目录在:  /var/lib/jenkins


这里红色框出来的内容,需要注意一下,要不以后也是一个坑。 jenkins默认是用 jenkins用户安装的,这里mark一下,以后碰到坑时,知道如何处理。

四、Jenkins的配置

      4.1 Jenkins的初次安装和使用

在本机浏览器里打开Jenkins网址:  http://192.168.136.144:8080/

第一次安装,会弹出输入key的界面

根据提示,从上述目录下,cat 一下这个文件,复制 password 到这里填入,继续,如果出现下面的窗口,说明是网络问题,检查网络。

 如果网络正常,那么会出现下面的安装插件的界面,让它自己安装就好了。

如果一切顺利,那么会弹出如下界面:

       点击  Start  按钮,进入Jenkins 环境

       4.2  Jenkins 环境,构建任务

Jenkins 提供了多种构建方式,本次实践就是构建一个简单的maven项目。下面看看如何进行的。在正式构建项目之前,需要做一下全局的工具设置


从上图中标注的位置,进入具体的工具配置。其中重点是 jdk 和maven的配置。 虽然jenkins里面集成了自动下载的方法,但是在网络受到各种受限制的环境下(基于安全的考虑,很多公司有设置各种网络策略),强烈建议先从网络上下载安装包进行安装,然后再jenkins里面设置HOME路径,就可以不需要通过Jenkins来安装了。我一开始通过jenkins安装,构件任务失败了3,4次,都是因为下载地址无法下载。在Tool configuration打开的界面里面,我们可以这样设置:

再配置一下maven


这个配置完成后,点save。 这里配置的内容比较,包括git,docker,以后有用到再摸索。

现在返回jenkins主菜单,正式构建一个新任务。选择新建任务,

这里选择构建一个自由风格的软件项目,和很多网页不同,这里是没有显示maven 2/3 项目选项的。 在project 名字里面,输入自己想构建的项目名称。这里用的是 cwq_projecttest1

然后,进行基本的构建内容设置,主要包含如下内容:

 在general 这里,通过打开高级选项,这里强烈建议使用自定义的工作空间

    

svn的设置,URL 是一个基于MAVEN创建,并上到SVN服务器的项目,在Credentials这里,通过add的方式,添加SVN的用户名和密码


    在构件触发器这里,进行如下配置,是一种每天定时的配置

        这里要注意一下  Poll SCM, 这个是指,如果配置有变化,就会触发自动配置,里面可以配置检测配置变化的时间策略。

在构件这一步,选择 invoke top-level maven  targets

然后进行Maven工程具体的配置

然后点save,就可以保存构建一个任务的基本信息了。

       保存后,可以手工进行构建动作看是否能正常工作,如果可以正常工作,以后就靠定时机制进行自动构建了。

万事开头难,手工构建就报错,通过查看日志,可以发现创建mkdir  错误,这个就涉及到前面说的jenkins 默认用户是用jenkins用户安装和执行的。下图显示了如何手工构建和构建日志如何查

   通过分析,很明显是因为jenkins用户没有权限,所以需要修改jenkins启动的用户,本例采用设置启动用户为root的方式:这个设置文件的全路径在 /etc/sysconfig/jenkins, 修改JENKINS_UESR="root" 来进行控制启动jenkins

 

保存后,执行下列命令

service jenkins restart

        通过重启后,继续构建,每次错误,都是查看日志,一个办法,就是可以手工将构件的内容,在命令行环境下再执行一下。

我这里还遇到过pom.xml 文件错误的问题

这个是通过修改pom.xml 来完成的,具体pom.xml 为

[root@cwqsolo cwq_testproject1]# cat  pom.xml 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.newland</groupId>
  <artifactId>StudyKafkaMavenTest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <name>kafka-demo</name>
        <url>http://maven.apache.org</url>

        <properties>
                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        </properties>

  <dependencies>
    <dependency>  
        <groupId>org.apache.kafka</groupId>  
        <artifactId>kafka_2.10</artifactId>  
        <version>0.8.2.0</version> 
    </dependency> 
  </dependencies>
<build>
    <defaultGoal>compile</defaultGoal>
</build>
</project>
最后,构件成功,状态红色会改变,日志看也提示成功



、小结

通过构建任务开始,只是jenkins很小的一个功能起步,后面还会持续集成各种插件,来丰富jenkins的平台

       1、网络的通畅很重要

        2、权限的控制

        3、不同版本的界面是有差异的

六、补充:

1、修改jenkins的端口
jenkins的默认端口为8080,这个端口在多应用环境下,很不合适,因此需要修改。

jenkins的配置文件为/etc/sysconfig/jenkins, 找到JENKINS_PORT="8080" 将端口修改成自己的端口。端口不要配置为1000以下,否则需要更高的权限。 重启后,进入jenkins 会报告 反向代理错误,只要进入“系统设置”,修改url ,就可以解决反向代理错误的问题
2、jenkins 反应比较慢

jenkins 安装了findbugs和checkstyle后,反应很慢,因此需要修改一下jenkins参数:

vi /etc/sysconfig/jenkins
找到JENKINS_JAVA_OPTIONS="-Djava.awt.headless"
修改成
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m"

具体参数根据自己的机器实际情况调整。



Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐