zoukankan      html  css  js  c++  java
  • jenkins+maven+svn 持续集成环境搭建

    说明:部署传统的web应用(.war)

    准备工作:

    (1) 系统环境:CentOS7

    (2) 安装JDK:https://www.cnblogs.com/myitnews/p/11493847.html

    (3) 安装Tomcat:https://www.cnblogs.com/myitnews/p/11493980.html

      在tomcat-users.xml中配置访问服务器的用户名和密码

    (4) 安装Maven:https://www.cnblogs.com/myitnews/p/11492967.html

    (5) 搭建SVN服务器:https://www.cnblogs.com/myitnews/p/11492187.html

      ※ 创建访问版本库的用户名和密码
      ※ svnserve.conf 文件中 anon-access 一定要打开注释并设置为 none

    一、Jenkins 主体程序安装配置

    下载地址:https://jenkins.io/download/

    1. 把 jenkins.war (v2.176.3)放在 Tomcat 解压目录 /webapps 目录下

    2. 打开 Tomcat 解压目录/server.xml 修改 URL 地址的编码解码字符集

    vi /usr/local/tomcat7/conf/server.xml

     <Connector executor="tomcatThreadPool"
                   port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" URIEncoding="UTF-8" />

    3.  启动 Tomcat 并通过浏览器访问:http://192.168.178.5:8080/jenkins

    4. 解锁 Jenkins
    依照提示,查看/root/.jenkins/secrets/initialAdminPassword 文件内容填入文本框 
    #密文同时也是 admin 账号的密码
    cat /root/.jenkins/secrets/initialAdminPassword

    5. 选择插件安装方式

    输入密文后,初始化后,选择插件安装方式(选择哪种方式都不会对后续操作有太大影响。因为有需要的插件我们可以在后续有针对性的安装)。在这里选择“安装推荐的插件”。

    开始安装插件如下:

    打×的插件是由于网络传输导致的安装失败,后面再重新安装即可。
    ※注意:这个步骤中如果选择了安装插件则 Linux 必须能够联网。

    6. 新建账号或以管理员身份继续

    可以选择使用 admin 账户继续,后面有需要仍然有机会注册新账户。
     
    7. 开始使用 Jenkins 
     

    二、系统初始化配置

    1. 系统管理界面
     
    注:v2.176.3默认是英文的,若想转为中文版本(但还是不完全中文),可以在
    (1) 主界面-->系统管理(Manage Jenkins)-->管理插件(Manage Plugins)-->可选插件(available)中找到Locale plugin插件进行安装
    (2) 主界面-->系统管理(Manage Jenkins)-->系统设置(Configure System)界面中找到Locale,输入:zh_CN
    (3) 重启Jenkins。
     
    2. 全局安全配置(Configure Global Security)
     
     
    注:生产环境授权策略切记不可这样配置
     
    3. 全局工具配置(Global Tool Configuration)
    (1) Maven配置
     
     
    (2) JDK
     
     
    (3) Maven
     
    (4) 不使用 Git,所以删除即可。
     
    最后点击 save 保存退出。
     
    4. 管理插件(Manage Plugins)
     
    Manage Plugins-->可选插件,搜索插件,并勾选:
    点击左下方的“直接安装”按钮即可。
     
    注:安装插件时受到网络状况的影响有可能会失败,不要紧,多试几次,直到成功。

    三、创建工程

    1. 准备工作
    这里创建工程不是随便创建的。
    (1) 在Windows下使用Eclipse工具创建一个项目名为Apple的Maven Project web项目。
    package com.linhw.demo;
    public class Apple {
        private String apple = "jenkins test......"; 
        public String getApple() {
            return apple;
        }
    }
    <%@page import="com.linhw.demo.Apple"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <%=new Apple().getApple() %>
    </body>
    </html>
    (2) 在Linux的SVN中创建仓库
    # 创建目录
    mkdir apple
    # 创建apple仓库
    svnadmin create apple

    (3) 修改SVN仓库相关的配置

    authz :设置用户读写权限

    passwd:设置用户名和密码

    svnserve.conf:设置授权访问

    (4) 在Eclipse下创建SVN仓库

    仓库地址:svn://192.168.178.5/apple

    (5) 在Eclipse下将Apple项目提交到SVN仓库中

    不要把项目的.classpath、.project、.settings文件提交到svn仓库中。
     
    2. 创建工程
     
    3. 指定工程名称和工程类型
     
    在主界面就可以看到任务列表:
     
    4. 源码管理
    在任务列表中点击 “Name” 查看项目信息,如下:
    点击“配置”,如果没有Subversion,那是因为插件没有安装
     
    选择 Subversion,修改以下两个地方,其余保持默认即可。
     
    5. 配置构建命令并手动执行一次构建
    进入工作区,提示“没有工作空间”
    进入“配置”界面,找到“构建”项,新建构建并配置
     
    保存后,然后手动“立即构建”
    查看控制台输出:
     
    6. 构建完成后部署到Tomcat
    进入“配置”界面,找到“构建后操作”项
     
    选择“Deploy war/ear to a container”,如果没有,那是因为没有安装插件“Deploy to container”。
     
     
     
     
    再次点击“立即构建”,查看tomcat的webapps文件夹,可以看到项目已经部署到tomcat上。
     
     
    7. 配置远程触发构建的TOKEN值
    进入“配置”界面,找到“构建触发器”项
     
    JENKINS_URL是Jenkins的访问地址:http://192.168.178.5:8080/jenkins
    TOKEN_NAME是我们这里任意输入的:LHW_APPLE
    在浏览器上访问上面的URL,查看Jenkins的构建历史(Build History),可以发现又进行构建了,这样我们就实现了通知Jenkins构建。
     
    8. curl命令触发构建

    (1) 获取crubm值

    由于2.0以上版本Jenkins增加了防跨站攻击功能,因此在每次访问Jenkins api的时候都需要将crubm参数带上,否则会提示认证不通过。

    浏览器访问:http://ip:port/crumbIssuer/api/json

    举例:http://192.168.178.5:8080/jenkins/crumbIssuer/api/json

    {"_class":"hudson.security.csrf.DefaultCrumbIssuer","crumb":"1fe463da428285deb2a0ee0181c0b44f","crumbRequestField":"Jenkins-Crumb"}

    (2) curl命令说明

    Linux 的 curl 命令用来发送 HTTP 请求。
    -X 参数:指定请求方式
    -v 参数:显示响应结果
    -u 参数:携带用户名/密码
    -H 参数:携带请求消息头信息

    格式:curl -X post -v -u [Jenkins 用户名]:[Jenkins 密码] -H "请求消息头信息" http://[服务器 IP 地址]:[服务器端口 号]/jenkins/job/[Jenkins 项目名称]/build?token=[身份验证令牌]

    举例:curl -X post -v -u admin:d769b039ccdc4b4dbe5624689aa81ad0 -H "Jenkins-Crumb:1fe463da428285deb2a0ee0181c0b44f" http://192.168.178.5:8080/jenkins/job/Apple/build?token=LHW_APPLE

    说明:-H可以不写,如果认证不通过,再加上

    在Linux命令行环境中输入上面的curl命令,发现会再次构建。

    9. 编辑SVN钩子程序

    # 进入svn仓库
    cd  /var/svn/svnrepos/apple
    # 进入hooks文件夹
    cd hooks
    # 查看文件
    ls -l

    #复制,千万不能带后缀名,直接post-commit
    cp post-commit.tmpl post-commit

    编辑:vi post-commit

    可以将内容都注释掉,然后在末尾添加我们上面的curl命令。

    保存退出,给post-commit授权执行

    chmod 755 post-commit

    这样我们在提交代码后,就会触发钩子程序,钩子程序通知Jenkins构建。

    10. 测试验证整个自动化持续集成流程

    在Eclipse中提交代码,查看JenKins的构建界面,用浏览器访问项目。

    测试过程过程中,可能会发现Jenkins构建的总是上一个版本的,并不是最新的(在一些较低版本会出现),怎么解决呢?

    在“源码管理”中的Repository URL为:svn://192.168.178.5/apple/Apple@HEAD

  • 相关阅读:
    内存对齐规则
    ATL窗口
    ATL的GUI程序设计(4)
    ATL的GUI程序设计(4)
    ATL的GUI程序设计(3)
    ATL的GUI程序设计(3)
    VMware Workstation 9.0 安装苹果Mac OS X10.9系统
    高级UIKit-03(NSFileManager、NSFileHandle)
    高级UIKit-02(文件操作)
    高级UIKit-01(总结基础UIKit)
  • 原文地址:https://www.cnblogs.com/myitnews/p/11493779.html
Copyright © 2011-2022 走看看