我正在使用AWS CLI和cloudformation,我在文档中找不到任何参考。
任何人都知道是否可以从当前配置创建一个云形态模板。
假设我想从当前的安全组配置中获取一个cloudformation模板。
是否有可能使用命令行将该配置导出为模板?
问候。
根据我们的经验,我们找到了两种可能的方法来将现有的手动部署(从Web控制台UI)AWS基础设施转换为Cloudformation(CF)。
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 DB Param Group - > Type: AWS::RDS::DBParameterGroup
并根据从aws cli
获得的每个组件的输出手动转换为CF.这种方法通常需要AWS和CF的更多经验,但您创建的模板可以根据良好实践进行结构化和设计,完全参数化(Sub, Ref, Join, Fn::GetAtt:, Fn::ImportValue
),模块化,应用conditions
,并且在第一次迭代中结果可能接近于模板的最终状态(有趣的参考例子:https://github.com/widdix/aws-cf-templates/)。
加分! :)
0.12.0-beta2
的新版本(已经由terraform-provider-aws 2.7.0
在稳定版本中支持),具有新功能及其更友好的语法,并且不会忽略它是一个开源工具和云提供商不可知,我不会忽视生成的可能性基于现有AWS基础设施的Terraform代码,如果可能的话,以模块和子模块的形式作为参考 - > https://registry.terraform.io/作为AWS CF的替代品。使用AWS CLI是不可能的,但您可以使用CloudFormer [1]工具从现有资源创建CloudFormation模板。我用它取得了不错的成功。模板不像手工模板那样“漂亮”,但它们提供了一个很好的起点。
除了CloudFormer,你可能想看看Bellerophon:https://github.com/arminhammer/bellerophon。