簡體   English   中英

自動將代碼從 Git 實驗室部署到 AWS EC2 實例

[英]Automate code deploy from Git lab to AWS EC2 instance

我們正在構建一個使用GitLab存儲庫的應用程序。 將代碼手動部署到測試服務器( Amazon AWS EC2 實例)很乏味,我計划自動化部署過程,這樣當我們提交代碼時,它應該反映在測試實例中。

據我所知,我們可以使用AWS 代碼部署服務從GitHub獲取代碼 但是代碼部署服務不支持 GitLab 存儲庫。 有沒有辦法通過 GitLab 將代碼部署過程自動化到 AWS Ec2 實例。 或者是否有 shell 腳本可以實現這一點? 請教育我。

使用 AWS CodeDeploy 實現此目的的一種方法是將 S3 選項與 Gitlab-CI 結合使用: http ://docs.aws.amazon.com/codepipeline/latest/userguide/getting-started-w.html

根據您的項目的設置方式,您可能有可能生成分發 Zip(Gradle 通過應用程序插件提供)。 如果您的項目不提供此類功能,您可能需要手動生成“分發”文件。

Gitlab 不提供直接的 S3 集成,但是通過gitlab-ci.yml您可以將其下載到容器中並運行必要的上傳命令,以按照 AWS 觸發指令將生成的 zip 文件放在 S3 容器上部署。

這里是你的什么一個例子brefore-script可能看起來像在gitlab-ci.yml文件:

before_script:
  - apt-get update --quiet --yes
  - apt-get --quiet install --yes python
  - pip install -U pip
  - pip install awscli

關於如何將 CodeDeploy 與 S3 結合使用的 AWS 教程非常詳細,因此我將跳過嘗試在此處重現內容。

對於您當前手動執行的實際部署命令和操作,AWS CodeDeploy 提供了通過 app-spec 文件中定義的腳本運行某些操作的功能,具體取決於應用程序的事件掛鈎:

我希望這會有所幫助。

這是我的舊帖子之一。 但我碰巧找到了答案。 雖然我的問題是針對代碼部署的,但我會說沒有必要使用 gitlab 來使用任何 aws 要求。

我們根本不需要代碼部署。 不再需要使用任何外部 CI 服務器(如團隊城市或 jenkins)來從 GitLab 執行 CI。

我們需要在分支的源目錄中添加.gitlab-ci.yml文件,並在其中編寫.yml腳本。 GitLab 中有管道可以自動執行 CI/CD。

GitLab CI/CD 的管道看起來更類似於 Jenkins Server 的工作功能。 使用 YML 腳本,我們可以在 EC2 實例上執行 SSH 並將文件放入其中。

如何將 gitlab .yml 文件寫入 ssh 到 ec2 實例的示例在這里https://docs.gitlab.com/ee/ci/yaml/README.html

暫無
暫無

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

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