Chinaunix首页 | 论坛 | 博客
  • 博客访问: 341694
  • 博文数量: 52
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 577
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-27 14:21
个人简介

知道自己该干嘛,知道自己能干嘛

文章分类

全部博文(52)

文章存档

2019年(1)

2018年(8)

2017年(2)

2016年(11)

2015年(3)

2014年(10)

2013年(17)

我的朋友

分类: 系统运维

2014-08-14 17:38:51



            今天我们来学习jenkins 的主要功能 ,对代码的持续化构建,首先我们来配置构建过程中需要的 jdk 环境以及工具
                 同步一个 jdk 或者你 rpm 安装都可以 ,下载 ant , maven 构建工具,jenkins 系统设置
                 Manage Jenkins --> Configre System --> 配置环境    Configre System 是一个全局设置
             
                  Jdk
                

                 Ant
               

                 Maven
               
                 
                 今天我们要使用jenkins实现如下工作流程: 
                 自动获取 svn 代码 ---> jenkins 构建 ---> 推送至指定服务器 ---> 执行服务器上相应脚本, 更新war包内容,重启服务
                  
                 jenkins推送文件,执行远程脚本需要安装插件 Publish Over SSH Plugin 功能如下 :
               
                 这个插件完全实现了我们需要的功能,jenkins 强大的插件库也是它的一大优势 , 安装方法第一篇笔记介绍过了

                 通过一个实例,展示整个流程

                 setp 1  新建一个项目
                 
  1.               New Item --> Build a maven2/3 project  POM.xml 文件由开发人员提供
                 setp 2  编辑项目内容

  1.               Maven project name : 填写项目名称
  2.               Description : 项目内容描述

  3.               Source Code Management --> Subversion --> 填写 Repository URL(svn代码路径) --> 首次需要我们输入密码进行验证,验证成功后jenkins会自动记录密码
  4.               填写好svn地址进行认证, 点击 (Maybe you need to ?) 进入认证页面,输入用户名密码,通过后保存密码

  5.                

                
         
                每个项目的第一次svn验证通过之后都会保存并更新密码,因为我们在全局配置configre system里已勾选
         

                

               OK , 到此为止,我们jenkins从svn取代码的环节就完成了

         
               setp 3 bulid 环节

  1.       
  2.      
  3.        Root POM : 填写pom.xml 名称,这个文件在项目中已有,maven构建时使用的配置文件
  4.        Goals and options : 跳过测试,此参数是maven项目的参数,由开发人员提供
     
        触发构建三种方式 :
        1. 手动构建
        2. URL触发构建
       
        3. 定时任务
       
     
        H : 定义Hashes获取随机值的范围,每天的AM 8点18,PM 7:18各触发一次构建

        
The H symbol can be used with a range. For example, H H(0-7) * * * means some time between 12:00 AM (midnight) to 7:59 AM. You can also use step intervals with H, with or without ranges.

        The H symbol can be thought of as a random value over a range, but it actually is a hash of the job name, not a random function, so that the value remains stable for any given project. 

 
          

              setp 4 Post Bulid  推送 war包,解压重启服务
  1.        
  2.        首先配置 Publish Over SSH Plugin

  3.             Manage Jenkins --> Configure System -->  Publish over SSH

  4.            

               Passphrase : 使用私钥时候的口令信息 (所使用的私钥是之前ssh-keygen生成的,jenkins服务器至目标主机已做公钥认证
               Path to key : 私钥文件位置
               Key : 也可以填写私钥至表格中
         
               配置SSH Server : 配置的ssh server可在项目中选用  

               Name : 服务器名称
               Hostname : 填写服务器地址
               Username : 验证时使用的用户名
               Remote Diretory : 登陆后进入的远程目录
               Test Configuration :测试jenkins服务器能否使用此配置登陆目标服务器,成功就会有 "Success" 字样, apply save 

               再回到我们刚才创建的项目

                当bulid成功后,执行我们的推送任务和执行脚本
           
                
               选择要推送服务器的label 标签
             
                    jenkins会使用sftp去发送文件 --> 登陆远程主机执行脚本     查看日志 : Project --> Bulid History --> Console Output

                   
                

                                   
                                  到此为止,我们整个的流程就介绍完了。多学习自动化工具,整合流程,为我们的运维工作添砖加瓦。

         
                                                                                                        emar_Cail

                                    参考资料 :  
                                                     

阅读(1566) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~