Coding持续集成之自动化部署

2634 篇文章 26 订阅
2294 篇文章 14 订阅

前言

把一个SpringBoot编译成jar部署到服务器分为几步?答:3步。

1、打成压缩包;

2、SCP 上传到服务器;

3、SSH 解压;

如果使用持续集成,则可以实现提交代码时自动上线,原理如下图:

DevOps自动上线原理

图片

常见的持续集成有:商业化的 CircleCI、开源的 Jenkins

本文以小编公司使用的 Jenkins 云服务-Coding为例

coding持续集成说明地址

https://coding.net/products/ci?cps_source=PIevZ6Jr

进入正题-实战演示

注册CODING,创建一个 Git 仓库,提交代码;(5人以下免费,已经很不错了)

注册地址:https://coding.net

服务器创建SSH公私钥

命令如下:

ssh-keygen -m PEM -t rsa -b 4096 -C "your.email@example.com"

创建好后会在目录/root/.ssh生成两个文件(id_rsa是私钥|id_rsa.pub是公钥)

[root@VM_0_3_centos .ssh]# pwd
/root/.ssh
[root@VM_0_3_centos .ssh]# ll
total 16
-rw------- 1 root root  743 Apr 10 14:32 authorized_keys
-rw------- 1 root root 3243 Apr 10 13:20 id_rsa
-rw-r--r-- 1 root root  742 Apr 10 13:20 id_rsa.pub

需要把公钥id_rsa.pub复制到authorized_keys文本中,另外需要把 id_rsa私钥配置到:项目设置——凭据管理(类型选择私钥)

这样就完成了SSH无密码连接

然后开始构建项目信息配置

图片

进入coding构建与部署模块,【流程配置】用编译器编写SSH语法pipeline

jenkins官网语法介绍SSH Pipeline语法地址:

https://jenkins.io/doc/pipeline/steps/ssh-steps/

示例如下:

pipeline {
  agent any
  stages {
    stage('检出') {
      steps {
        checkout(
          [$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]],
          userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]]
        )
      }
    }
    stage('部署') {
      steps {
        echo '部署中...'
        script {
          def remote = [:]
          remote.name = 'web-server'
          remote.allowAnyHosts = true
          remote.host = '106.54.18.228'
          remote.user = 'root'
          // 需要先创建一对 SSH 密钥,把私钥放在 CODING 凭据管理,把公钥放在服务器的 `.ssh/authorized_keys`,实现免密码登录
          withCredentials([sshUserPrivateKey(credentialsId: "d770d752-6d95-4936-9936-77da68a00736", keyFileVariable: 'id_rsa')]) {
            remote.identityFile = id_rsa
            // SSH 上传文件到远端服务器
            sshCommand remote: remote, command: "sh /opt/test.sh"
            sshCommand remote: remote, command: "for i in {1..5}; do echo -n \"Loop \$i \"; date ; sleep 1; done"
          }
        }
        echo '部署完成'
      }
    }
  }
}

最终构建成功打印结果(和jenkins控制台日志输出很像)

图片

附jenkins控制台日志输出对比

图片

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值