在Jenkins中使用EDAS插件构建应用部署的任务

在Jenkins环境中集成了edas-jenkins-plugin插件,您可以使用该插件在Jenkins内快速完成应用持续部署到EDAS。本文介绍了在Jenkins控制台的白屏化部署过程,使用流水线的部署步骤以及使用Job-dsl的任务模板来快速生成部署任务的简介。

前提条件

已安装Job-dsl插件。

安装edas-jenkins-plugin

  1. 下载edas-jenkins-plugin安装包

  2. 登录Jenkins首页,单击Manage Jenkins,在Manage Jenkins页面单击Manage Plugins

  3. Plugin Manager页面选择Advanced页签,在Upload Plugin区域单击选择文件,选择下载的插件,然后单击Upload

  4. Installing Plugins/Upgrades页面等待插件安装完成。

配置账号信息

  1. 登录Jenkins首页,单击Manage Jenkins,在Manage Jenkins页面单击Configure System

  2. Deploy to EDAS区域内配置账号信息,单击Add,然后单击Advanced输入地域信息。

    Deploy into EDAS

    参数

    描述

    EDAS credentials name

    为AccessKey设置名称。

    EDAS Access Key ID

    输入账号的AccessKey信息,获取方法,请参见创建AccessKey

    EDAS Access Key Secret

    输入账号的AccessKey密钥,获取方法,请参见创建AccessKey

    EDAS Region

    请输入您想部署的应用的地域ID,例如cn-hangzhou。

    Endpoint(专有云)

    在专有云中使用Jenkins前,需在该配置项中输入EDAS的EndPoint,Endpoint请联系EDAS技术支持获取。

    说明

    在公共云中使用Jenkins时,无需配置该参数。

  3. 配置完成后在Deploy to EDAS区域单击Ping EDAS,当页面显示success即说明账号信息配置完成。

    说明

    您可以单击Add设置多个EDAS账号。

在Jenkins中创建Freestyle project任务来部署应用

  1. 登录Jenkins首页,单击New Item

  2. Enter an item name区域输入一个项目名称,选择Freestyle project然后单击OK

  3. Post-build Actions区域单击Add post-build actions,然后在下拉列表中单击Deploy to EDAS

  4. Deploy to EDAS区域单击Add,在下拉列表中可以选择集群来部署。

    添加部署任务

    参数

    描述

    EDAS ECS Application

    已经部署在ECS集群中的应用在Jenkins插件中升级部署,详细配置参数,请参见在ECS集群中部署应用

    Create EDAS ECS Application

    使用Jenkins插件在ECS集群中创建应用并部署,详细配置参数,请参见在ECS集群中创建并部署应用

    EDAS K8s Application

    已经部署在容器服务K8s集群中的应用在Jenkins插件中升级部署,详细配置参数,请参见在容器服务K8s集群中部署应用

    Create EDAS K8s Application

    使用Jenkins插件在容器服务K8s集群中创建应用并部署,详细配置参数,请参见在容器服务K8s集群中创建并部署应用

  5. 设置完成后在页面左下角单击SaveApply

  6. 在工程任务页面的左侧导航栏单击Build Now来运行任务。

    运行构建任务

    您将会在Build History区域查看构建记录,单击构建记录可以进入构建记录的详情页面查看构建详情。构建详情

使用流水线插件部署应用到EDAS

edas-jenkins-plugin已经支持流水线预发的片段生成器,在Jenkins中构建流水线部署应用到EDAS。

  1. 登录Jenkins首页,单击New Item

  2. Enter an item name区域输入项目名称,选择流水线然后单击OK

  3. Pipeline区域单击Pipeline Syntax

    说明

    如果您已创建了流水线,可在项目列表单击流水线名称进入流水线管理页面,然后在左侧导航栏单击流水线语法进入片段生成器页面。

  4. 片段生成器页面的Sample Step下拉框选择edasClient: Deploy into EDAS,然后单击Application Setup右侧的Add,然后在下拉列表中选择集群和应用部署类型。

    edasClient: Deploy to EDAS
  5. 配置部署参数,具体配置信息,请参见在Jenkins中使用edas-jenkins-plugin部署应用的参数配置

  6. 完成参数配置后单击Generate Pipeline Script,拷贝生成的流水线脚本。

    Generate Pipeline Script
  7. 在左侧导航栏单击Back返回流水线管理页面,然后在左侧导航栏单击Configure,然后在Pipeline区域按照下图示例输入脚本内容。

    说明

    下图橙色框内的内容需替换为上面步骤生成的脚本。

    pipeline
  8. 设置完成后在页面左下角单击SaveApply

  9. 在工程任务页面的左侧导航栏单击Build Now来运行任务。

    您将会在Build History区域查看构建记录,单击构建记录可以进入构建记录的详情页面查看构建详情。

使用Job-dsl插件来构建部署任务

在Jenkins中您可以使用Job-dsl插件来构建一个任务模板,使您可以快速根据模板来构建部署任务。

  1. 登录Jenkins首页,单击New Item

  2. Enter an item name区域输入项目名称,选择Freestyle project然后单击OK

  3. Build区域单击Add build step,然后在下拉列表中选择Process Job DSLs

    说明

    如果您已创建了流水线,可在项目列表单击流水线名称进入流水线管理页面,然后在左侧导航栏单击流水线语法进入片段生成器页面。

    Process Job DSLs
  4. Process Job DSLs区域单击Use the provided DSL script,然后在脚本输入框内输入您的配置脚本。

    job('edas') {    //目标任务的名称
      publishers { //EDAS插件的类型
        edasClient { //EDAS插件调用名称
          deployApplication('', '', '', '', '') //调用的EDAS方法
        }
      }
    }

    支持的方法示例如下:

    //在ECS集群中部署应用
    void deployApplication(
            String namespace,
            String credentialsString,
            String group,
            String appId,
            String targetObject);
    
    void deployApplication(
            String namespace,
            String credentialsString,
            String group,
            String appId,
            String targetObject,
            String versionLabelFormat,
            String versionDescriptionFormat,
            String batch,
            String batchWaitTime,
            String releaseType);
    
    //在ECS集群中创建并部署应用
    void insertApplication(
            String namespace,
            String credentialsString,
            String applicationName,
            String packageType,
            String clusterId,
            String targetObject,
            String ecuInfo);
    
    void insertApplication(
            String namespace,
            String credentialsString,
            String applicationName,
            String packageType,
            String clusterId,
            String targetObject,
            String ecuInfo,
            String versionLabelFormat,
            String versionDescriptionFormat,
            String buildPackId,
            String healthCheckUrl);
    
    //在容器服务K8s集群中部署应用
    void deployK8sApplication(
            String namespace,
            String credentialsString,
            String appId,
            String targetObject,
            Boolean image);
    
    void deployK8sApplication(
            String namespace,
            String credentialsString,
            String appId,
            String targetObject,
            Boolean image,
            String edasContainerVersion,
            String webContainer,
            String jdk,
            String versionLabelFormat,
            String envs,
            String startupCommand,
            String args,
            String cpuLimit,
            String memoryLimit,
            String cpuRequest,
            String memoryRequest,
            String replicas,
            String postStart,
            String preStop,
            String readiness,
            String liveness,
            String updateStrategy);
    
    //在容器服务K8s集群中创建并部署应用
    void insertK8sApplication(
            String namespace,
            String credentialsString,
            String applicationName,
            String packageType,
            String clusterId,
            String targetObject,
            String k8sNamespace,
            String jdk);
    
     void insertK8sApplication(
            String namespace,
            String credentialsString,
            String applicationName,
            String packageType,
            String clusterId,
            String targetObject,
            String k8sNamespace,
            String jdk,
            String descFormat,
            String edasContainerVersion,
            String webContainer,
            String versionLabelFormat,
            String envs,
            String startupCommand,
            String args,
            String cpuLimit,
            String memoryLimit,
            String cpuRequest,
            String memoryRequest,
            String replicas,
            String postStart,
            String preStop,
            String readiness,
            String liveness);
  5. 设置完成后在页面左下角单击SaveApply

  6. 在工程任务页面的左侧导航栏单击Build Now来运行任务。

    您将会在Build History区域查看构建记录,单击构建记录可以进入构建记录的详情页面查看构建详情。

更多信息

在Jenkins中使用edas-jenkins-plugin部署应用的参数配置