现在,我正在从EC2实例手动创建AWS AMI。我想使用Jenkins构建过程自动化该过程。
我已使用凭据配置了jenkins-cloudformation插件,并尝试触发云形成模板以启动EC2实例。从这里开始,我如何进行自动化过程以在云形成模板中创建AMI?
有人可以帮我吗?
答案 0 :(得分:0)
这是一个老问题,但这里有一些信息供任何尝试进行此类自动化的人使用。您可能会使用 HashiCorp Packer 来创建映像,但是,如果您了解 lambdas 和 AWS API,您就不需要 Packer。
您可以通过从源 AMI 启动实例来创建新的 AMI,按照您想要的方式对其进行自定义,然后调用 AWS api 以从该实例中创建一个 AMI。为此,您可以遵循以下步骤:
那么,你会怎么做这些,胶水在哪里? 您可以使用 AWS lambda 来管理这些步骤。一个 lambda 可以找到源 AMI 并从中启动和实例化。另一个 lambda 可以捕获图像。
自定义实例后,您将触发 lambda,将其捕获为 AMI。您可以通过直接调用 lambda 来做到这一点。根据您的可重用性要求,您可能希望从 SNS 或 CloudWatch 触发该 lambda,在这种情况下,您可以将 SNS 消息发送到您的 SNS 主题或启用/触发您的 CloudWatch 规则。
您的 cloudformation 将安装这些 lambda 表达式以及会触发它们的任何其他组件(SNS 和 CloudWatch)。