AWS Export配置为cloudformation模板

时间:2016-06-27 15:12:52

标签: amazon-web-services amazon-ec2 amazon-cloudformation

我正在使用AWS CLI和cloudformation,我在文档中找不到任何引用。

任何人都知道是否可以从当前配置创建一个云形态模板。

假设我想从当前的安全组配置中获取云信息模板。

是否可以使用命令行将该配置导出为模板?

问候。

4 个答案:

答案 0 :(得分:13)

使用AWS CLI是不可能的,但您可以使用CloudFormer [1]工具从现有资源创建CloudFormation模板。我用它取得了不错的成功。模板不像手工模板那么“漂亮”,但它们提供了一个很好的起点。

[1] http://aws.amazon.com/developertools/6460180344805680

答案 1 :(得分:6)

除了CloudFormer之外,你可能想看一下Bellerophon:https://github.com/arminhammer/bellerophon

答案 2 :(得分:6)

根据我们的经验,我们发现了两种将现有的手动部署(从Web Console UI)AWS Infra转换为Cloudformation(CF)的可能方法。

  1. 使用aws cli对组成堆栈的每个元素执行$aws service_name_here describe,例如对于 RDS数据库堆栈
    • RDS实例-> Type: AWS::RDS::DBInstance
    • RDS(EC2)SG-> Type: AWS::EC2::SecurityGroup
    • RDS子网组-> Type: AWS::RDS::DBSubnetGroup
    • RDS数据库参数组-> Type: AWS::RDS::DBParameterGroup

并根据从aws cli获得的每个组件的输出手动转换为CF 。这种方法通常需要在AWS和CF方面都有更多的经验,但是您可以在良好实践,完全参数化(Sub, Ref, Join, Fn::GetAtt:, Fn::ImportValue,模块化,应用conditions以及第一次迭代的情况下对正在创建的模板进行结构化和设计。结果可能接近模板的最终状态(有趣的参考示例:https://github.com/widdix/aws-cf-templates/)。

  1. 使用 AWS CloudFormer

加分! :)

  1. 使用变形https://github.com/dtan4/terraforming)。考虑到Terraform 0.12.0-beta2的新版本(terraform-provider-aws 2.7.0已在稳定版本中受支持),具有新功能和更友好的语法,并且没有忽略它是开源工具且与云提供商无关,我不会否认有可能基于现有的AWS基础设施生成Terraform代码,如果可能的话,以模块和子模块的形式使用-> https://registry.terraform.io/作为AWS CF的替代。

  2. 将您当前已部署的AWS基础设施导出到Cloudformation / Terraform代码的其他一些新选择:

答案 3 :(得分:1)

CloudFormer 当前处于测试版。我们建议不要在关键或生产环境中使用它-来自AWS文档