用于协调AWS CloudFormation模板执行的工具

时间:2017-02-14 10:06:41

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

AWS控制台和CLI非常适合将单个模板执行到单个AWS账户。但是,对于多个帐户的配置,它是不可用的。

我喜欢通过多个开发人员AWS账户一直协调配置CloudFormation模板的工具。在最好的情况下,该工具应该能够具有手动批准步骤并在执行之前呈现更改集。 Web UI是首选的可见性。

欢迎对商业和OSS工具的建议。

最终可能会使用CodePipeline吗?如果是,那么该怎么做的任何样本?

3 个答案:

答案 0 :(得分:2)

首先,我不知道有一个工具可以提供您需要的所有功能。但是,我可以推荐Ansible,它允许您针对大量订阅创建CloudFormation堆栈,并为您提供可视性的Web UI。

可以使用Ansible Tower或Ansible以及您选择的CI / CD平台(例如TeamCity / Jenkins)来提供Web UI。

可以在此处看到启动CloudFormation堆栈并返回一些堆栈输出的示例:

https://www.unixdaemon.net/tools/managing-cloudformation-stacks-with-ansible/

- name: Create Webapp
action: cloudformation
  stack_name={{ stack_name }}-webapp
  state=present
  region="{{region}}"
  template=-webapp.json
args:
  template_parameters:
    Owner: "{{ owner }}"
    AMIId: "{{ ami_id }}"
    KeyName: "{{ keyname }}"
    AppServerFleetSize: 1
    ASGSNSArn:             "{{ asgsns['stack_outputs']['EmailSNSTopicARN']      }}"
    WebappSGID:            "{{ secgrp['stack_outputs']['WebappSGID']            }}"
    ElasticacheClientSGID: "{{ secgrp['stack_outputs']    ['ElasticacheClientSGID'] }}"

答案 1 :(得分:2)

  

我喜欢通过多个开发人员AWS账户一直协调配置CloudFormation模板的工具。

从问题中究竟是否需要“多个开发人员AWS账户”的问题并不清楚。通过在单个AWS账户中创建单个IAM用户(documented best practice),可以更好地服务于涉及在单个组织内工作的多个开发人员的大多数典型用例。除非您有特定(非标准)理由要求多个开发人员在不同的AWS账户中工作(如果是这样,请将这些详细信息添加到您的问题中),强烈建议在单个AWS中创建单个IAM用户,因为它将进行配置更简单。

  

最好的工具应该具有手动批准步骤并在执行前提供更改集的能力。 Web UI是首选的可见性。

AWS CodePipeline是完全符合此说明的工具。它支持:

  

最终可能会使用CodePipeline吗?如果是,那么该怎么做的任何样本?

有关完整示例,请参阅AWS CloudFormation用户指南中的Walkthrough: Building a Pipeline for Test and Production Stacks

答案 2 :(得分:0)

有商业工具/服务可以执行此操作或更多:https://www.cloudaware.com

注意:我不隶属于该公司,也没有使用该工具