簡體   English   中英

AWS 上的 Dockerized Jenkins 服務器

[英]Dockerized Jenkins server on AWS

我有一個 dockerized Jenkins 構建服務器,如下所示,我想將它移動到 AWS。

我有一些關於如何做的問題,謝謝。

  1. ECS 是部署 dockerized Jenkins 代理的正確選擇嗎?

  2. Fargate 啟動類型的 ECS 是否支持 Windows 容器?

  3. 我知道 ECS 可以動態配置 EC2 實例,ECS 可以像下面這樣配置嗎?

    一個。 如果沒有要構建的作業,則集群中沒有運行 ECS2 實例。

    灣。 如果構建作業啟動,ECS 會動態啟動 EC2 實例以運行 dockerized 代理來處理它。

    c。 構建作業完成后,ECS 集群將自動停止或終止正在運行的 EC2 實例。

==================================================== =================

Jenkins master:
Runs as a Linux container hosted on a UBUNTU virtual machine.

Jenkins Agents:

Linux Agent:
Runs as a Linux container hosted on the same UBUNTU virtual machine as master.

Windows Agents:
Runs as a windows container hosted on a Windows server 2019. 

好吧,我有一些建議給你:

  • 是的,ECS 可以使用自動縮放動態配置 EC2 實例,但前提是在 cloudwatch 中達到指標閾值並且發出警報並且自動縮放開始起作用。 用 jenkins 主服務器在 ECS 中啟動任務,然后在 go 執行任務時啟動 1 或 2 個代理,這不是一個好策略,也不是實用的想法,誰來喚醒這些任務?

  • If you want to use a jenkins docker inside an EC2 instance and you have a master node running and you want to keep stopped your unused agents and start it only if is needed by a job maybe in your Jenkinsfile you can call a lambda function to start您的代理,此處和 Jenkinsfile 中的示例:

     stage('Start Infrastructure') { steps { sh ''' #:/bin/bash aws lambda invoke --function-name Wake_Up_Jenkins_Agent --invocation-type Event --log-type Tail --payload '{"node","NodeJS-Java-Agent":"action"."start"}' logsfile.txt ''' } }

稍后另一個階段停止您的代理,但您的主節點需要在線,因為它是從存儲庫或 CI/CD 流程調用的關鍵和主要組件。 您還需要使用邏輯過程來實現 lambda 以啟動或停止實例。

  • 根據我的經驗,直接在 EC2 中運行 Jenkins 是在 ECS 或 Fargate 中運行它的更好選擇。

暫無
暫無

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

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