全部產品
Search
文件中心

Enterprise Distributed Application Service:在Jenkins中使用EDAS外掛程式構建應用部署的任務

更新時間:Jun 30, 2024

在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 into 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 into 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已經部署在Container ServiceK8s叢集中的應用在Jenkins外掛程式中升級部署,詳細配置參數,請參見在Container ServiceK8s叢集中部署應用
    Create EDAS K8s Application使用Jenkins外掛程式在Container ServiceK8s叢集中建立應用並部署,詳細配置參數,請參見在Container ServiceK8s叢集中建立並部署應用
  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);
    
    //在Container ServiceK8s叢集中部署應用
    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);
    
    //在Container ServiceK8s叢集中建立並部署應用
    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部署應用的參數配置