搭建jenkins自动化集成开发环境步骤,纯小白

1.  为什么需要jenkins自动化集成开发环境。

      故事背景:

        前后端分离开发过程中, 前后端联调通讯时,需要后端人员开发完成后, 将代码打包部署到测试服务器上。 此过程会导致后端人员因代码更新速度过慢而影响整体效率,此行为不符合程序员四大基本优点。

        jenkins自动化集成开发方案存在已久, 它使后端人员只需要提交svn代码,并不需要关注打包、部署等一系列问题,前端人员即可获得最新的测试环境, 从而提高了开发效率。

2.  怎么部署jenkins。

       2.1.   一台服务器(windows/linux系统), 安装有JDK/Maven/Tomcat

       2.2.   从jenkins官网下载最新的war包,copy到tomcat的webapps下, 启动tomcat 。

                apache-tomcat-xxx/bin/startup.bat

               云盘下载地址:

                  链接:https://pan.baidu.com/s/1nyrIOfHjCdBMELFcdL7k4g 
                 提取码:hvog 

       2.3.  用浏览器访问http://localhost/8080/jenkins/ , 按照步骤一步步安装jenkins。 

               默认密码路径  /root/.jenkins/secrets/initialAdminPassword

       2.4   登录jenkins后, 点击 Manage Jenkins . 配置相关的信息。

                 security配置:

           配置 Global Tool Configuration:

        

                manager plugins(安装插件):

                Subversion Plug-in     /    Deploy to container Plugin

 

                此时基础配置已完成。 

        2.5  新建item=>  填写项目名称,选择 freestyle project ,确定后跳转下图界面:

                源码管理: 选择subversion, 填写svn的源码下载地址及svn的账号密码, 其他默认。

                构建触发器: 选择远程构建。 填写token的值(此时一定是一个token的字符串,而不是一个地址)

                具体的访问地址是: http://ip:port/jenkins/job/项目/build?token=xxx

                构建环境: 选择maven版本, 使用 clean install 构建项目

        

                构建后的操作:

               

tomcat需要可以通过浏览器访问 ManagerApp  。

tomcat 9 只允许本机访问, 此时可以通过 {tomcat webapps路径} /manager/META-INF/context.xml 中修改 

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

 设置tomcat的conf/tomcat-users.xml

  <role rolename="tomcat" />
  <role rolename="manager-gui"/>
  <user username="账号" password="密码" roles="tomcat,manager-gui"/>

  此时, 如果遇到通过浏览器上传war包失败的情况, 应该是tomcat 9 跨域的问题, 只需要注销掉{tomcat webapps路径}/manger/WEB-INF/web.xml

<!--
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>HTML Manager interface (for humans)</web-resource-name>
      <url-pattern>/html/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-gui</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Text Manager interface (for scripts)</web-resource-name>
      <url-pattern>/text/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-script</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>JMX Proxy interface</web-resource-name>
      <url-pattern>/jmxproxy/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-jmx</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Status interface</web-resource-name>
      <url-pattern>/status/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-gui</role-name>
       <role-name>manager-script</role-name>
       <role-name>manager-jmx</role-name>
       <role-name>manager-status</role-name>
    </auth-constraint>
  </security-constraint>
  -->

    注销掉以上代码即可, 但会导致不安全。 请自行考虑其他解决方案。 

以上配置完成后,点击 Build Now ,jenkins就会从svn服务上拉去最新的代码, 并打包运行、发布到tomcat上。 

3.  如何编写svn钩子函数。(window环境下)

        此时我们有了一个通过外部的访问地址触发jenkins自动打包的路径。 参考2.5的配置。 

        如何实现windows服务器上的提交后自动触发jenkins打包部署呢??

        下面我们需要一个钩子函数。

        3.1  打开 服务器端的svn的 Repositories / 代码库/ hooks文件夹。

               此文件夹下有一系列的文件。 我们copy post-commit.tmpl 这个文件, 重命名为 post-commit.bat 文件。

                注释掉*.bat里面的原有代码, 此时服务器的windows系统需要一个工具包, 叫 curl。

                链接:https://pan.baidu.com/s/1VB1Bjmd_w9zTBWNrwQV_9w 
                提取码:tqyw 

               修改.bat 文件内容为:

               

{Curl解压存放位置}\bin\curl.exe -X post -v -u  {jenkins账号}:{jenkins密码}  http://{服务器IP地址}:{端口号}/jenkins/job/{jenkins的项目名}/build?token={自定义的token值}

以上{}及包含的内容,自行替换。               

此时我们的钩子函数已编辑完成。 可以测试是否成功了!

猜你喜欢

转载自blog.csdn.net/weixin_59128282/article/details/120089190