簡體   English   中英

如何將WAR文件從s3部署到AWS EC2?

[英]How to deploy a WAR file from s3 to AWS EC2?

我有一個運行中的AWS EC2實例,並且在tomcat7上運行了一個maven項目。 我嘗試使用的是Jenkins作為CI,因此只要Git-hub Jenkins出現新的推送,構建完成后,它將戰爭文件上傳到AWS S3。 卡住的地方是,我沒有辦法將war文件部署到AWS Ec2實例。

我嘗試過使用Code Deployment,它在某種程度上表明它僅支持tar,tar.gz和zip,可以通過任何方式將war文件從S3部署到AWS EC2實例。

謝謝。

您可以使用Amazon Code Deploy ,它可以管理S3存儲桶中的部署,並可以自動部署到文件/腳本的EC2實例。

部署概述

運作方式如下:

  1. 首先,您在本地開發計算機或類似環境上創建可部署的內容(例如網頁,可執行文件,安裝腳本等),然后添加應用程序規范文件(AppSpec文件)。 AppSpec文件對於AWS CodeDeploy是唯一的; 它定義了您希望AWS CodeDeploy執行的部署操作。 您將可部署的內容和AppSpec文件捆綁到一個存檔文件中,然后將其上傳到Amazon S3存儲桶或GitHub存儲庫。 此存檔文件稱為應用程序修訂版(或簡稱為修訂版)。
  2. 接下來,您向AWS CodeDeploy提供有關您的部署的信息,例如從哪個Amazon S3存儲桶或GitHub存儲庫中提取修訂,以及將其內容部署到哪個實例集。 AWS CodeDeploy將一組實例稱為部署組。 部署組包含單獨標記的實例,Auto Scaling組中的Amazon EC2實例或兩者。
    每次成功將要部署的新應用程序修訂上載到部署組時,該捆綁包都將設置為部署組的目標修訂。 換句話說,當前以部署為目標的應用程序修訂版是目標修訂版。 這也是將為自動部署拉出的修訂。
  3. 接下來,每個實例上的AWS CodeDeploy代理都會輪詢AWS CodeDeploy,以確定從指定的Amazon S3存儲桶或GitHub存儲庫中提取修訂的內容和時間。
  4. 最后,每個實例上的AWS CodeDeploy代理從指定的Amazon S3存儲桶或GitHub存儲庫中提取目標修訂,然后使用AppSpec文件中的說明將內容部署到該實例。

AWS CodeDeploy會記錄您的部署,以便您獲取諸如部署狀態,部署配置參數,實例運行狀況等信息。

好消息是代碼部署沒有額外的成本,您只需為管道中使用的資源(EC2,S3)付費

假設您已經創建了一個S3存儲桶。

步驟1:創建一個有權訪問s3存儲桶的IAM用戶/角色,在其中放置WAR文件

步驟2:編寫一個自定義腳本,該腳本將從S3下載WAR文件到您的EC2實例。

您也可以使用aws cli將內容從s3下載到本地計算機。

創建一個startup.sh文件並添加這些內容

aws s3 cp s3://com.yoursitename/warFile/sample.war /tmp
sudo mv /tmp/sample.war /var/lib/tomcat/webapps/ROOT.war
sudo service tomcat restart

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM