代码之家  ›  专栏  ›  技术社区  ›  NotSoShabby

让Jenkins启动一个EC2实例并终止它

  •  2
  • NotSoShabby  · 技术社区  · 7 年前

    我有一个完整的部署作业,它获取一个正在运行的实例的IP并在其上部署我的系统。

    我目前持有一个EC2实例,用于每晚运行的自动化测试,但是这个实例很昂贵,我正在寻找一种在测试之前启动它并在测试之后终止它的方法。

    我找到了可以帮助的EC2插件,最近的一个是 this 但这是为了做奴隶,这不是我想要的。

    我希望能够启动EC2实例,并将其IP地址传递给自动化测试作业,然后在完成后终止该实例。

    我开始为此编写命令行bash文件,但这似乎工作量太大,我想可能我遗漏了一些东西。

    1 回复  |  直到 7 年前
        1
  •  2
  •   JRichardsz    7 年前

    您的要求是有效的,亚马逊知道:

    当您停止一个实例时,我们会关闭它。我们不为停止的实例收取使用费,也不收取数据传输费,但是我们为任何AmazonEBS卷收取存储费。

    参考文献:
    - https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html

    下面介绍一些启动/停止Instances的方法

    亚马逊EC2 HTTP API

    这是一个API REST,您可以执行 简单HTTP请求 启动或停止实例:

    https://ec2.amazonaws.com/?Action=StartInstances&...
    

    https://ec2.amazonaws.com/?Action=StopInstances&...
    

    您可以调用此API 从詹金斯 在许多方面:简单的shell执行、groovy和脚本化/声明性、管道。


    AWS CLI

    以下是有关如何使用AWS CLI挂起实例的详细信息:

    您可以调用此API 从詹金斯 在许多方面:简单的shell执行、groovy和脚本化/声明性、管道。


    AWS实例调度程序

    2018年,AWS推出了AWS实例调度程序,这是一个新的和改进的调度解决方案,使客户能够调度AmazonEC2实例。

    使用此工具,您可以自动启动和停止AmazonEC2和AmazonRDS实例。

    参考文献:

    用这种方法你 不需要詹金斯