zoukankan      html  css  js  c++  java
  • Jenkins

    Jenkins

    想起老的项目部署方式的时候,真的让人头疼,因为我们需要对项目进行打包,然后手动上传到服务器上。但是现在微服务时代到来,我们肯定是需要一个东西帮我们自动部署代码,所以Jenkins应运而生。这一篇我会聊聊它。

    工作流程

    在这下面的流程中我们可以在其中加入我们的shell脚本,比如在获取代码之前编写,或者maven打包之后,Jenkins当执行到某个流程的时候,就会自动对我们的shell进行执行,从而达到我们的效果。

    • Jenkins获取我们的代码
    • 使用maven进行打包
    • 进行部署

    从创建到发布

    我们有几点是必须的

    •  jdk1.8的安装:因为Jenkins是java写的,所以它需要java的环境。
    • maven的安装:我们平常是在自己本地进行maven打包,那在Jenkins也需要maven作为支撑。
    • git的安装:从git上拉取代码,是一方面。另一方面,我们平常在本地对代码进行提交的时候,也需要git.那我们需要Jenkins为我们做这些,就需要给它这个环境。
    • 并且我们需要让Jenkins知道我把这些东西都放在那里呢,这个需要我们在它的【全局工具配置】中指定相关路径

    【安装maven插件】

    【创建项目、拉取代码】

    首先在启动中生成一个ssh秘钥,并且在github上建立一个相关的key,并且把系统中生成的ssh秘钥放在里面。

    【linux中生成ssh 】【ssh-keygen -t rsa -C "邮箱名"】 

    【获取公钥】:cat /root/.ssh/id_rsa.pub 放在git上

    【获取私钥】:cat /root/.ssh/id_rsa 放在Jenkins上,上下我圈的地方也要。

    这里切记已经做了我们上面的必须工作。否则会获取不到代码。

     

     【项目构建】

    上面我们配置好了他拉取的代码地址,并且把所需要的东西都已经搭建好了,这个时候我们其实就可以拉取项目并且编译了。

    在我的视图这里,点进去我们的项目,并且进行拉取和编译。

     点击立即构建

     构建完成后就变成了

     然后发现在我们的target下就有已经打包好的jar

    这个时候我们要做的就是把这个jar发送到我们的服务器上的一个文件夹中,然后写脚本对这个jar进行启动。

    在jenkins中的构建后操作中选择 Send build artifacts Over SSH,这个的前提是安装ssh的插件,并且配置好公私钥,和连接的服务器地址

    这里记得在系统管理中的系统配置中对ssh进行配置

    并且在Exec command中写上传递过去要执行的脚本。这就是我们要启动项目的脚本。这样,项目就启动了。

    整体梳理

    【准备】

    • 准备好jdk、maven、git
    • 安装ssh插件、maven插件
    • 配置ssh的服务地址(系统配置中),jdk地址、maven地址(全局工具配置中)。

    【流程】

    • 构建一个maven项目,
    • 编写上传到github的项目地址,
    • 编写执行前脚本
    • 编写maven命令( 也可以不写,他会默认),
    • 进行执行后操作,传递到相关服务器上的文件夹下。
    • 并且执行执行后的sh文件,这个文件中包含了对项目的启动。

    【相关想法】

    如果想要上传后就编译怎么办?

      在github上有一个webhook,当github上的节点有修改,就会触发放在他上面的一个地址,这个地址就会执行我们的项目编译这一动作。

    启动后的jar是否有东西进行管理,如果宕机的话。

      我们可以使用supervisor进行管理,他可以对这些jar进行重启。

  • 相关阅读:
    Dynamic CRM 2013学习笔记(四)单据编号及插件批量注册工具
    Dynamic CRM 2013学习笔记(三)快速创建实体 EntityCreater
    Dynamic CRM 2013学习笔记(二)插件基本用法及调试
    Dynamic CRM 2013学习笔记(一)插件输入实体参数解析
    MVC 4 图片的上传及显示
    CRM 2013 批量更新two options的缺省值
    ASP.NET MVC & Web API Brief Introduction
    Mac下访问windows的共享文件夹
    解决Android编译so库出错问题
    解决Xcode 6 编译Cocos2d-x iOS项目失败
  • 原文地址:https://www.cnblogs.com/UpGx/p/15576682.html
Copyright © 2011-2022 走看看