AWS控制檯和CLI非常適合將單個模板執行到單個AWS賬戶。但是對於配置到多個帳戶,它不可用。協調執行AWS CloudFormation模板的工具
我喜歡一種工具,通過多個開發人員AWS賬戶一直到Production,協調配置CloudFormation模板。在最好的情況下,該工具應具備手動批准步驟並在執行前提供更改集的能力。網絡用戶界面將是首選的可見性。
歡迎對商業和OSS工具的建議。
最終可以使用CodePipeline嗎?如果是的話,如何做到這一點的樣本?
AWS控制檯和CLI非常適合將單個模板執行到單個AWS賬戶。但是對於配置到多個帳戶,它不可用。協調執行AWS CloudFormation模板的工具
我喜歡一種工具,通過多個開發人員AWS賬戶一直到Production,協調配置CloudFormation模板。在最好的情況下,該工具應具備手動批准步驟並在執行前提供更改集的能力。網絡用戶界面將是首選的可見性。
歡迎對商業和OSS工具的建議。
最終可以使用CodePipeline嗎?如果是的話,如何做到這一點的樣本?
首先,我不知道有一個工具可以提供您所需的所有功能。然而,我可以推薦Ansible,它允許您針對大量訂閱創建CloudFormation堆棧,併爲您提供可見性的Web UI。
Web UI可以使用Ansible Tower或Ansible加上您選擇的CI/CD平臺(例如TeamCity/Jenkins)來提供。
發射了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'] }}"
我喜歡的工具來協調供應的CloudFormation模板通過多個開發人員AWS賬戶一直到生產。
從問題中不清楚「多個開發人員AWS賬戶」的需求來自何處。通過在單個AWS賬戶中創建單個IAM用戶(documented best practice),可以更好地服務涉及在單個組織內工作的多個開發人員的大多數典型用例。除非您有特定(非標準)原因要求多個開發人員使用不同的AWS賬戶工作(如果是,請將這些詳細信息添加到您的問題中),強烈建議在單個AWS內創建單個IAM用戶,因爲它會進行配置簡單得多。
在最好的情況下,該工具應具備手動批准步驟並在執行前提交更改集的能力。網絡用戶界面將是首選的可見性。
AWS CodePipeline是完全符合此說明的工具。它支持:
CHANGE_SET_REPLACE
( 「創建或替換更改集」)/ CHANGE_SET_EXECUTE
( 「執行變更集」)操作模式在您的管道莫非最終CodePipeline將用於此?如果是的話,如何做到這一點的樣本?
有關完整示例,請參閱AWS CloudFormation用戶指南中的Walkthrough: Building a Pipeline for Test and Production Stacks。