AWS上的Dockerized Jenkins服务器

我有一个安装了Docker化的Jenkins构建服务器,如下所示,我想将其移至AWS。

我对此有疑问,谢谢。

  1. ECS是部署Docker化的Jenkins代理的正确选择吗?

  2. Fargate ECS的启动类型是否支持Windows容器?

  3. 我知道ECS可以动态配置EC2实例,是否可以像下面这样配置ECS?

    a。如果没有要构建的作业,则集群中没有运行ECS2实例。

    b。如果启动了构建作业,则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. 
yizhufu10 回答:AWS上的Dockerized Jenkins服务器

好吧,我为您提供一些提示:

  • 是的,ECS可以使用自动缩放来动态设置EC2实例,但是只有在cloudwatch中达到指标的阈值并且抛出警报并且自动缩放才能开始工作时,ECS才可以使用。使用jenkins主服务器在ECS中启动任务,然后在执行作业时启动1或2个代理既不是一个好策略,也不是可行的想法,谁来唤醒这些任务?

  • 如果您想在EC2实例中使用jenkins docker并且您有一个主节点正在运行,并且您想保持停止未使用的代理并仅在作业需要时才启动它,也许可以在您的Jenkinsfile中调用lambda函数来启动您的代理,这里是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中运行它的更好选择。
本文链接:https://www.f2er.com/3096961.html

大家都在问