本樣本模板是用於從Git拉取代碼,構建成軟體包並上傳至OSS,並批量部署到多台ECS。該模板既支援在使用者已有ECS上構建,也支援臨時開啟一台ECS構建後釋放。
前提條件
樣本模板流程
由您指定代碼源(例如OSSObject Storage Service或Git),OOS將為代碼源產生臨時連結,用於後續拉取。
構建軟體包(如JAR包)並上傳到OSS。
拉取已構建的軟體包,批量在多台ECS上部署。
使用樣本
代碼源準備
本樣本使用了一個Spring Boot的樣本專案代碼來示範,代碼已上傳到Gitee和GitHub倉庫,如果想要使用,請先fork到自己的倉庫。代碼地址:
Gitee:gitee範例程式碼(中國內地建議使用Gitee)
Github:github範例程式碼(海外地區建議使用Github)
建立模板
在左側導覽列,選擇,單擊建立模板。
在構建部署地區,選擇構建軟體包至OSS並部署,單擊下一步。
在流程配置頁簽下,填寫模板參數,然後單擊建立模板。
指定您的代碼源,為下一步拉取代碼做準備,產生一個臨時授權連結。
本樣本以Gitee為代碼源,填寫該代碼源的所有者、組織、倉庫以及分支等參數。
說明如果您未授權阿里雲從您的GitHub/Gitee讀取您的代碼倉庫,請單擊前往授權來完成授權操作。
如果您之前已經Fork範例程式碼,您只需下拉倉庫,會自動展示您帳號下所有倉庫,請選擇Fork的範例程式碼倉庫。

構建軟體包(如JAR包)並上傳到OSS。
選擇代碼源和構建的ECS執行個體,再提供構建命令。

代碼源:代碼源以選擇
git為例,代碼源連結引用了上一個任務的輸出authorizedUrl。選擇構建Ecs:您需要選擇構建的ECS,支援在已有ECS構建和新啟動臨時ECS構建兩種方式。
說明選擇新啟動臨時ECS構建方式,系統會以隨用隨付的方式產生費用。另外,OOS會自動檢測ECS上是否已安裝Docker,如果沒有安裝,會自動為您安裝Docker社區版。
構建配置:按需提供構建準備命令。
本文僅提供一個構建部署指令碼樣本,執行該樣本會先安裝了Maven,然後打JAR包,JAR包會放在
target目錄下。您可按需將該樣本更換適合自己專案的指令碼。構建指令碼樣本(Alibaba Cloud Linux 3)
### sample build script set -e yum install -y maven-3.5.4 mvn package構建指令碼樣本(Ubuntu)
### sample build script set -e yum install -y maven mvn package構建指令碼樣本(CentOS)
### sample build script set -e apt install -y maven mvn package
提供打包路徑和構建物名稱(即要打成的壓縮包名稱)。
以下樣本表示指定打包路徑為
target/,OOS會將軟體包檔案夾壓縮為一個.tgz檔案。
上傳構建物到OSS。
您可指定想要上傳到的OSS bucket和Bucket裡的目錄。

在任務輸出(可選)地區,添加
bucketName(OSS bucket的名稱)和objectName(構建物在bucket內的完整路徑,目錄+構建物名稱)參數作為輸出內容,以供後續任務使用。後續任務可直接引用這些輸出,無需重新填寫。批量在多台Linux系統的ECS上部署軟體包。

要部署到的目標ECS:這裡您可以選擇多個ECS批量部署。
OSS的資訊:提供構建物所在OSS的資訊。其中,OSS bucket名稱和OSS object名稱已預設引用上一步的輸出,無需重複填寫。同時,需要指定軟體包下載到的路徑,這裡預設下載到
/home/admin/app/。部署指令碼:您可以根據自己實際專案提供部署指令碼。
本模板提供的樣本是先把
.tgz壓縮包解壓到指定路徑,然後使用java -jar命令運行我們打的JAR包,並指定連接埠為8080。
(可選)設定任務的並發控制參數,控制批量部署到多台ECS的並發速率。
單擊建立模板。
執行模板
在左側導覽列,選擇。
在自訂工作範本頁面,找到已建立的模板,單擊對應操作列下的建立執行。
在基本資料階段,配置相應參數,單擊下一步:設定參數。
在設定參數階段,如果沒有可配置的參數,直接單擊下一步:確定。
單擊建立。
在任務執行管理頁面,執行狀態顯示為成功時,表示模板執行任務已完成。

找到部署的目標ECS執行個體並遠端連線該執行個體。
具體操作,請參見使用Workbench工具以SSH協議登入Linux執行個體。
執行以下命令,確認本地構建部署是否成功。
curl http://localhost:8080/hello看到返回欄位,即表明部署成功。
說明如果結果顯示
Failed to connect to localhost port 8080:Connection refused,很可能是您的ECS未安裝Java導致,請執行yum install java命令後再次驗證。
後續使用
後續如果您的代碼有更新,您只需把程式碼推送到相應Git倉庫,然後重新執行該CI/CD模板,該流水線會為您拉取最新代碼,重新打包並推送至OSSObject Storage Service。然後,最新版本的軟體包會被批量的部署到您指定的多台ECS上。當然,如果您需要調整模板,也可以更新模板後再重新執行。