持续集成及自动化部署之Jenkins

39次阅读

共计 1346 个字符,预计需要花费 4 分钟才能阅读完成。

持续集成及自动化部署工具

持续部署[CD]

** 仅仅单元测试还不够,各个模块必须能够在服务器上运行;** 关注点在于项目功能 (各个模块) 部署至服务器后可以运行,为测试环节或最终用户使用做好准备;

持续集成[CI]

** 经常性、频繁的把所有模块集成在一起进行测试[集成测试],有问题尽早发现;** 关注点在于尽早发现项目整体运行问题,尽早解决;

持续交付[CD]

** 用小版本不断进行快速迭代,不断收集用户反馈信息,用最快的速度改进优化;[大版本 /release]
** 关注点在于研发团队的最新代码能够尽快让最终用户体验到;

总体目标

** 好处:***1. 降低风险;***2. 减少重复过程[如编译、测试、打包等固定流程] - 自动化流程;***3. 任何时间、任何地点生成 "可部署的软件";
    ***4. 增强项目的可见性 <1> 有效决策;<2> 注意到趋势;***5. 建立团队对开发产品的信心;

Jenkins<open> | Hudson<Oracle>

** 前提知识:Linux 基本命令 |vim 编辑器 |Maven 项目构建管理 |Github|SVN
** 可整合 Github 或 Subversion
** 人工部署
** 自动化部署
    *** 搭建持续集成环境:可以把构建、部署自动化,减轻工作量
                                                  > deploy web container 插件 + >
    *** dev > git repository > 钩子程序 > jenkins > [GIT 插件]> code > 打包 > war 包 > 部署 >Tomcat server
                                                  > [Maven 插件] > + >

Jenkins:

### Jenkins + SVN:** 要点:*** 创建虚拟机安装 Linux 系统:vm1-svn,vm2-jenkins,vm3-application(tomcat);
        *** 版本控制子系统(SVN):- subversion 服务器;- 项目对应版本库;- 版本库中钩子程序;-- linux curl 命令:-X: 指定请求方式;-v: 显示响应结果;-u: 携带用户名 / 密码;-H: 携带请求消息头信息;*** 持续集成子系统
            - JDK;- Tomcat;- Maven;- Jenkins:-- 主体程序;-- svn 插件;-- maven 插件;-- Deploy to Web Container 插件;*** 应用发布子系统
            - JDK;- Tomcat;### Jenkins + Github:
    ** 要点:*** Jenkins 需要部署到外网,因 Github 无法无法访问内网地址;- 安装 Jenkins;*** Jenkins 所在主机需要安装 GIT,git 从 GitHub 上 clone 代码;- echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc  # >> 追加
            - source /etc/bashrc    # 使文件生效
        *** Jenkins 需要指定 git 程序位置,和指定 jdk、maven 程序位置类似;- 配置 git;*** 在 GitHub 上使用每个 repository 的 webhook 方式远程触发 Jenkins 构建;- GitHub 配置 webhook[repository>settings>webhook>add webhook> 远程触发的身份验证令牌]
        *** 在 Jenkins 内关闭“防止跨站请求伪造”;- 全局安全配置 > CSRF Protection > 取消勾选;

正文完
 0