Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS上停靠的Jenkins服务器_Amazon Web Services_Docker_Jenkins_Amazon Ec2_Amazon Ecs - Fatal编程技术网

Amazon web services AWS上停靠的Jenkins服务器

Amazon web services AWS上停靠的Jenkins服务器,amazon-web-services,docker,jenkins,amazon-ec2,amazon-ecs,Amazon Web Services,Docker,Jenkins,Amazon Ec2,Amazon Ecs,我有一个停靠的Jenkins构建服务器,如下所示,我想将其移动到AWS 我有一些关于如何做的问题,谢谢 ECS是部署停靠Jenkins代理的正确选择吗 Fargate启动类型的ECS是否支持Windows容器 我知道ECS可以动态配置EC2实例,ECS可以像下面这样配置吗 a。如果没有要生成的作业,则集群中没有运行的ECS2实例 b。如果启动了构建作业,ECS会动态启动EC2实例来运行停靠的代理来处理它 c。构建作业完成后,ECS集群将自动停止或终止正在运行的EC2实例 ============

我有一个停靠的Jenkins构建服务器,如下所示,我想将其移动到AWS

我有一些关于如何做的问题,谢谢

  • ECS是部署停靠Jenkins代理的正确选择吗

  • Fargate启动类型的ECS是否支持Windows容器

  • 我知道ECS可以动态配置EC2实例,ECS可以像下面这样配置吗

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

    b。如果启动了构建作业,ECS会动态启动EC2实例来运行停靠的代理来处理它

    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中达到某个度量的阈值并且发出警报并且自动缩放开始工作时,ECS才会这样做。使用jenkins主服务器在ECS中启动一个任务,然后在执行作业时启动1或2个代理不是一个好策略,也不是一个实用的想法,谁来唤醒这些任务

    • 如果您希望在EC2实例中使用jenkins docker,并且您有一个主节点正在运行,并且您希望停止未使用的代理并仅在作业需要时启动它,那么您可以在jenkins文件中调用lambda函数来启动代理,如下所示,以及jenkins文件中的示例:

      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中运行它的更好选择