1 Jenkins简介

Jenkins,原名Hudson,2011年改为现在的名字,它 是一个开源的实现持续集成的软件工具。官方网站:http://jenkins-ci.org/
Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。
特点:

  • 易安装:仅仅一个 java -jar jenkins.war,从官网下载该文件后,直接运行,无需额外的安装,更无需安装数据库;
  • 易配置:提供友好的GUI配置界面;变更支持:Jenkins能从代码仓库(Subversion/CVS)中获取并产生代码更新列表并输出到编译输出信息中;
  • 支持永久链接:用户是通过web来访问Jenkins的,而这些web页面的链接地址都是永久链接地址,因此,你可以在各种文档中直接使用该链接;
  • 集成E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时告诉你集成结果(据我所知,构建一次集成需要花费一定时间,有了这个功能,你就可以在等待结果过程中,干别的事情);
  • JUnit/TestNG测试报告:也就是用以图表等形式提供详细的测试报表功能;
  • 支持分布式构建:Jenkins可以把集成构建等工作分发到多台计算机中完成;
  • 文件指纹信息:Jenkins会保存哪次集成构建产生了哪些jars文件,哪一次集成构建使用了哪个版本的jars文件等构建记录;
  • 支持第三方插件:使得 Jenkins 变得越来越强大

    2 Jenkins安装

    2.1 JDK安装

    (1)将jdk-8u171-linux-x64.rpm上传至服务器(虚拟机)
    (2)执行安装命令
    1. rpm ivh jdk8u171linuxx64.rpm
    RPM方式安装JDK,其根目录为:/usr/java/jdk1.8.0_171t
    jdk安装还需要配置环境变量

    2.2 Jenkins安装与启动

    (1)下载jenkins
    wget https://pkg.jenkins.io/redhat/jenkins‐2.83‐1.1.noarch.rpm
    
    (2)安装jenkins
    rpm ‐ivh jenkins‐2.83‐1.1.noarch.rpm
    
    (3)配置jenkins
    vi /etc/sysconfig/jenkins
    
    修改用户和端口
    JENKINS_USER="root"
    JENKINS_PORT="8888"
    
    (4)启动服务
    systemctl start jenkins
    
    (5)访问链接 http://192.168.184.135:8888
    从/var/lib/jenkins/secrets/initialAdminPassword中获取初始密码串
    图片.png
    (6)安装插件
    图片.png
    图片.png
    (7)新建用户
    图片.png
    完成安装进入主界面
    图片.png

    2.3 Jenkins插件安装

    2.3.1 安装Maven插件

    (1)点击左侧的“系统管理”菜单 ,然后点击
    图片.png
    (2)选择“可选插件”选项卡,搜索maven,在列表中选择Maven Integration ,点击“直接安装”按钮
    图片.png
    看到如下图时,表示已经完成
    图片.png

    2.3.2 安装Git插件

    步骤如上图,搜索git
    图片.png

    2.4 全局工具配置

    2.4.1 安装Maven与本地仓库

    注意:此步骤也可以在windows上解压了再上传到服务器中,这样操作更方便
    (1)将Maven压缩包上传至服务器(虚拟机)
    (2)解压
    tar zxvf apache‐maven‐3.3.9‐bin.tar.gz
    
    (3)移动目录
    mv apache‐maven‐3.3.9 /usr/local/maven
    
    (4)编辑setting.xml配置文件 vi /usr/local/maven/conf/settings.xml ,配置本地仓库目录,内容如下
    <localRepository>/usr/local/repository</localRepository>
    
    (5)将开发环境的本地仓库上传至服务器(虚拟机)并移动到/usr/local/repository
    mv reponsitory_boot /usr/local/repository
    
    执行此步是为了以后在打包的时候不必重新下载,缩短打包的时间。
    (6)编辑setting.xml配置文件 vi /usr/local/maven/conf/settings.xml
    <pluginGroups>    
      <pluginGroup>com.spotify</pluginGroup>    
    </pluginGroups>
    

    2.4.2 全局工具配置

    选择系统管理,全局工具配置
    (1)JDK配置
    图片.png
    设置javahome为 /usr/java/jdk1.8.0_171-amd64
    (2)Git配置 (本地已经安装了Git软件)
    图片.png
    (3)Maven配置
    图片.png

    2.5 持续集成

    2.5.1 创建任务

    (1)回到首页,点击新建按钮 .如下图,输入名称,选择创建一个Maven项目,点击OK
    图片.png
    (2)源码管理,选择Git
    图片.png
    (3)Build
    图片.png
    命令:
    clean package docker:build ‐DpushImage
    
    用于清除、打包,构建docker镜像
    最后点击“保存”按钮

    2.5.2 执行任务

    返回首页,在列表中找到我们刚才创建的任务
    图片.png
    点击右边的绿色箭头按钮,即可执行此任务.
    点击下面正在执行的任务
    图片.png
    可以看到实时输出的日志
    图片.png
    这就是镜像做好了在上传,如果你之前没有将你的本地仓库上传到服务器,会首先下载依赖的jar包,接下来就是漫长的等待了。
    看到下面的结果就表示你已经成功了
    图片.png
    我们在浏览器看一下docker私有仓库
    http://192.168.184.135:5000/v2/_catalog ,会看到tensquare_eureka已经上传成功了
    {“repositories”:[“jdk1.8”,”tensquare_eureka”]}
    按此方法完成其它微服务的构建

    2.5.3 完成配置中心的持续集成

    (1)配置中心的pom.xml中,添加docker插件
    <build>
          <finalName>app</finalName>
          <plugins>
              <plugin>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-maven-plugin</artifactId>
              </plugin>
              <!--docker的maven插件,官网:https://github.com/spotify/docker-maven-plugin-->
              <plugin>
                  <groupId>com.spotify</groupId>
                  <artifactId>docker-maven-plugin</artifactId>
                  <version>0.4.13</version>
                  <configuration>
                      <imageName>
                          192.168.108.140:5000/${project.artifactId}:${project.version}
                      </imageName>
                      <baseImage>jdk1.8</baseImage>
                      <entryPoint>
                          ["java", "-jar", "/${project.build.finalName}.jar"]
                      </entryPoint>
                      <resources>
                          <resource>
                              <targetPath>/</targetPath>
                              <directory>${project.build.directory}</directory>
                              <include>
                                  ${project.build.finalName}.jar
                              </include>
                          </resource>
                      </resources>
                      <dockerHost>http://192.168.108.140:2375</dockerHost>
                  </configuration>
              </plugin>
          </plugins>
      </build>
    
    (2)提交代码到git
    (3)按照同样的方法,完成配置中心的持续集成。完成后会看到私有仓库中添加了tensquare_config
    {"repositories":["jdk1.8","tensquare_config","tensquare_eureka"]}
    
    (4)创建rabbitMQ容器
    docker run ‐di ‐‐name=tensquare_rabbitmq ‐p 5671:5617 ‐p 5672:5672 ‐p
    4369:4369 ‐p 15671:15671 ‐p 15672:15672 ‐p 25672:25672 rabbitmq:management
    
    (5)创建容器:
    docker run ‐di ‐‐name=config ‐p 12000:12000
    192.168.184.135:5000/tensquare_config:1.0‐SNAPSHOT