乐趣区

关于微服务:微服务架构下使用Jenkins自动化部署

摘要

在微服务架构中,随着服务越来越多,服务的打包部署就会成为一个相当麻烦的事件。比如说我的 ccos 我的项目目前就有 10 个服务须要部署,有没有什么方法让咱们部署一次之后,只有点击执行就能够主动部署呢?当然有!上面咱们应用 Jenkins 来实现一个微服务架构中的自动化部署工作。

Jenkins 的根本应用

jenkins 的根本应用, 这里不再形容

Jenkins 中创立工作

接下来咱们将通过在 Jenkins 中创立工作来实现自动化部署。因为咱们的 ccos 是个多模块的我的项目,部署下面和已经的单模块我的项目还是有所区别的。

ccos-outbound

因为各个模块的执行工作的创立都大同小异,上面将具体解说 ccos-outbound 模块工作的创立,其余模块将简略解说。

  • 首先咱们抉择 构建一个 maven 我的项目,而后输出工作名称为 ccos-outbound,配置其 Git 仓库地址,这里我间接应用了 Gitee 下面的地址:
  • General 配置 :
    抛弃旧的构建:
    参数化构建过程:
    GIT 参数:

    选项参数:(指代咱们 maven 的 Profiles 创立的环境)

    字符参数:submodule
    包目录

    字符参数:jar 包

    字符参数:(服务器上构建包所在目录:deploy_dir)

    字符参数:(启动端口 port)

    字符参数:(输入格局)
  • 源码治理:
  • 父层构建 :
    咱们创立一个构建,构建 ccos 我的项目中的依赖模块,否则当构建可运行的服务模块时会因为无奈找到这些模块而构建失败;

    # 只 install ccos-common 模块
    clean install -pl ccos-common -am

  • 本级构建 :
    再创立一个构建,独自构建并打包 ccos-outbound 模块
  • 执行 脚本:
cp -r ${WORKSPACE}/${submodule}/target/${jar} ${deploy_dir}
pid=$(ps -ef | grep "${jar} --server.port=${port}" | grep -v grep | awk '{print $2}')
kill -9 $pid | exit 0
cd ${deploy_dir}
nohup java -Xms512m -Xmx512m -jar ${jar} --server.port=${port} > ${output} 2>&1 &

ccos-upms

ccos-upms 和其余模块与 ccos-outbound 创立工作形式基本一致,只需批改构建模块时的 pom.xml 文件地位和 执行脚本 地位即可。

其余模块搭建

其余模块依照下面即可

谬误解决:

1、如果呈现上面谬误:

在 branch specifier (blank for any)处留空白,这样它会自动识别所有的 revison 包含分支 branch 的
或者准确匹配 revison 的所在位置

退出移动版