Amazon web services AWS上停靠的Jenkins服务器
我有一个停靠的Jenkins构建服务器,如下所示,我想将其移动到AWS 我有一些关于如何做的问题,谢谢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 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 ''' } }
- 根据我的经验,直接在EC2中运行Jenkins是在ECS或Fargate中运行它的更好选择