美文网首页
jenkins的使用

jenkins的使用

作者: wwmin_ | 来源:发表于2017-12-29 09:34 被阅读460次

    简介

    Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
    主要用于:
    1.持续、自动地构建/测试软件项目,如CruiseControl与DamageControl。
    2.监控一些定时执行的任务。

    安装和启动

    • Jenkins for Windows安装
    • Tomcat+Jenkins.war
    • Cmd : Java -Jar Jenkins.war
      其中第三种方法在各种操作系统平台上都可以使用,启动命令java -jar jenkins.war --httpPort=8082//表示使用8082端口启动Jenkins (默认端口是8080) ,
      如果是windows 则安装后,在浏览器中打开localhost:8080即可启动,如果有端口冲突,则需要修改默认端口,参考 # jenkins 修改端口号
      第一次启动jenkins时,处于安全考虑,jenkins会自动生成一个随机的口令,注意控制台输出的口令,复制下来,然后再浏览器中输入:http://localhost:8080/粘贴口令,进入安装界面,如果执行默认的安装,Jenkins就自动配置好了Maven git等常用插件.最后创建一个admin用户,然后需要输入初始化密码,会提示在用户根目录已经生成,一般都是jenkins安装目录下的.jenkins/secrets/initialAdminPassword,输入密码后即可进入jenkins

    配置jenkins

    首次进入会提示安装插件,建议安装推荐的,如果是高级用户则可以选择第二个选择自己需要的插件即可,待插件安装完毕即可正常使用,在需要用到第三方插件是还可从 系统管理->管理插件->可选插件 选择过滤查找自己需要的插件

    jenkins 修改端口号

    1.先停止jenkins服务
    2.打开"C:\Program Files (x86)\Jenkins\jenkins.xml"
    修改该段<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments>中的
    --httpPort=8080 => --httpPort=8081
    3.重新启动jenkins服务

    jenkins 基本操作

    • 关闭jenkins服务http://localhost:8080/exit
    • 重新启动jenkins服务器http://localhost:8080/restart
    • 重载jenkins服务http://localhost:8080/reload

    jenkins 自定义项目路径和jenkins根目录

    1.自定义项目路径:

    进入没有my views - job -配置 - General -高级项目选项-选择使用“自定义的工作空间”,配置后项目不用放到jenkins默认的workspace里了。

    image.png
    2.更改整个jenkins的项目空间
    1. 先设置环境变量,变量名为JENKINS_HOME, 值为你想设置的目录 (一般情况下这样就够了,如果还是不行,就进行第二步)
    2. jenkins.war -> WEB-INF -> web.xml,修改此文件 (大概会在165行):
     <!-- if specified, this value is used as the Hudson home directory -->
      <env-entry>
        <env-entry-name>HUDSON_HOME</env-entry-name>;
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value></env-entry-value>
      </env-entry>
    

    在标签<env-entry-value></env-entry-value>中添加你的路径

    配置私有仓库方法 参考

    Jenkins支持自动从Git服务器下载构建程序,有助于团队开发部署,如果是私有项目则需要用户名密码登录,也可直接用ssh-key方式登录.此处用oschina做演示.

    1. 配置ssh-key
      生成SSH密钥打开终端命令工具,输入命令:ssh-keygen -t rsa -C "example@mail.com",
      公钥内容在 ~/.ssh/id_rsa.pub
      私有内容在 ~/.ssh/id_rsa
    2. 把公钥的内容加入git@osc 的SSH密钥中
      将公钥贴在osc@git用户设置的 SSH公钥



      3.在Jenkins配置git ssh
      在Jenkins ->Credentials->System--> Add credentials



      选择 SSH Username with private key.private key选择Enter Directly,粘贴私钥key

    4.Jenkins Job中配置git
    取得私有git的仓库配置并安装了git插件,在源码管理选项中会出现Git选项,


    配置webhook钩子使用Generic Webhook Trigger插件实现Jenkins+WebHooks(码云)持续集成

    准备工作
    1. “码云 Git@OSC”项目托管地址,这里假设我自己的项目:https://git.oschina.net/xuliugen/dlt-server.git(私有项目)

    2. 安装Generic Webhook Trigger插件

    在“系统设置–插件管理–可选插件”界面搜索:Generic Webhook Trigger,可以看到,点击安装,然后重启。


    插件地址:https://wiki.jenkins-ci.org/display/JENKINS/Generic+Webhook+Trigger+Plugin
    搭建工作

    一、创建Job
    这里我的是Maven项目,所以直接使用下图中红色步骤1和2

    这里写图片描述

    二、配置Job

    下边依次配置是:General–>源码管理–>构建触发器–>Optional filter–>构建环境–>Pre Steps–>Build–>Post Steps–>构建设置–>构建后操作 的配置。

    (1)General



    (2)源码管理


    注意:这里指定 Build的分支为develop,只是为了在开发的时候部署开发的代码,如果没有直接就是master

    关于账户密码的设置,如有问题请参考:

    使用Jenkins配置Git+Maven的自动化构建:http://blog.csdn.net/xlgen157387/article/details/50353317

    (3)构建触发器

    直接勾选使用插件即可!

    (4)Optional filter、构建环境、Pre Steps这三个部分没有进行配置,如下:

    (5)Build、Post Steps、E-mail Notification



    a、指定根pom文件;

    b、这里由于我的项目是多环境的,如下:


    我需要编译的是dev环境并且跳过测试,所以填入命令:

    clean install -Pdev -Dmaven.test.skip=true -e
    

    如果没有环境配置的话,直接忽略就可以!
    c、选中:Run only if build succeeds
    (6)构建后操作


    我这里是部署到Tomcat容器中,关于过程不再多说,可以参考:
    使用Jenkins配置Git+Maven的自动化构建:http://blog.csdn.net/xlgen157387/article/details/50353317

    (7)点击Apply 保存,到此Job配置完成!

    三、配置用户和Security

    (1)在“系统管理–管理用户–用户列表–admin处点击进去–左边侧边栏–设置”设置用户API Token!找到等会会用!


    可以进行Change!
    四、配置码云WebHooks
    找到WebHooks配置界面,在POST地址框中输入如下格式内容:
    http://<User ID>:<API Token>@<Jenkins IP地址>:端口/generic-webhook-trigger/invoke 
    

    具体如下:
    a、User ID:既是“三(1)”中的User ID,我的是admin;
    b、API Token:既是“三(1)”中的API Token,例如我的是8c1d11114ab111111111fdf21111a6a97;
    c、Jenkins IP地址:就是你的Jenkins的服务器IP地址,这个必须是公网IP地址,例如我的是210.41.223.54;
    d、端口:就是Jenkins服务器的端口;
    e、后边的内容就是Generic Webhook Trigger
    插件的地址,无需改变;
    例如我的配置为:

    http://admin:8c1d11114ab111111111fdf21111a6a97@210.41.223.54:8010/generic-webhook-trigger/invoke 
    

    点击提交之后,界面如下:


    URL后边的密码是,是jenkins用户admin的账户密码。
    然后点击“测试” 看一下Jenkins是否开始运行!
    到此为止就结束了?然并没有...
    上面如果是多个项目,会发现,用到的url是相同的!!!导致只要有一个webhook触发,所有的钩子都被触发,这是不可以的!
    参考:使用Generic Webhook Trigger插件实现Jenkins+WebHooks(码云)持续集成--指定具体项目和分支进行集成

    主要参数参考:

    ref
    $.ref
    
    project.git_ssh_url
    $.project.git_ssh_url
    
    ^(refs/heads/develop)|(git@gitee.com:tj/web.git)$
    $ref|$project.git_ssh_url
    
    npm install && npm run build && xcopy D:\web\source\dist D:\Project\web /E /C /Q /Y
    
    http://admin:af73f4b19389e52e59d9cebdaf366dc2@121.121.121.121:8080/generic-webhook-trigger/invoke
    af73f4b19389e52e59d9cebdaf366dc2
    9674d38e69494768be5ea2994a07e438
    
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
    /t:ResolveReferences;Compile 
    /t:_CopyWebApplication
    /t:Rebuild
    /property:Configuration=Release
    /property:TargetFrameworkVersion=v4.5
    /p:WebProjectOutputDir=D:\web\source\handan_road_api_publish
    /p:OutputPath=D:\web\source\handan_road_api_publish\bin
    

    构建.NET自动编译测试与发布环境

    • 在插件管理里面添加MSBuild Plugin
    • 在系统管理=>全局工具配置中选择MSBuild选项:配置如下


      image.png

      其中Path to MSBuild选项为msbuild.exe文件夹路径

    • 在需要构建的项目的配置的构建中选择如下:


      msbuild
    • 配置参数如下:


      image.png

    构建.net程序流程(参考:https://www.cnblogs.com/linJie1930906722/p/5966581.html)

    完成!
    欢迎讨论!

    相关文章

      网友评论

          本文标题:jenkins的使用

          本文链接:https://www.haomeiwen.com/subject/yltigxtx.html