Amazon web services 如何在ansible中触发多个aws cloudformation任务?

Amazon web services 如何在ansible中触发多个aws cloudformation任务?,amazon-web-services,ansible,amazon-cloudformation,Amazon Web Services,Ansible,Amazon Cloudformation,我正试图找到一种通过ansible并行触发多个cloudformation api调用的方法 随着堆栈的增长,单独触发每个任务会占用大量时间。我查看了轮询设置为0(触发并忘记)的异步选项。但这根本不会触发云形成任务 有什么建议吗?解决方案1: 将cloudformation调用封装在ansible模块中(易于创建),并在其中使用线程模块 例如: import threading def main(): module=AnsibleModule( argument_sp

我正试图找到一种通过ansible并行触发多个cloudformation api调用的方法

随着堆栈的增长,单独触发每个任务会占用大量时间。我查看了轮询设置为0(触发并忘记)的异步选项。但这根本不会触发云形成任务

有什么建议吗?

解决方案1: 将cloudformation调用封装在ansible模块中(易于创建),并在其中使用线程模块

例如:

import threading

def main():

    module=AnsibleModule(
        argument_spec=dict(
            region=dict(choices=AWS_REGIONS, default='us-east-1'),
            aws_secret_key=dict(no_log=True),
            aws_access_key=dict(no_log=True)
            ...
        )
    )
    t = threading.Thread(target=cfn_command)
    threads.append(t)
    t.start()
解决方案2: 编写一个脚本,将所有函数和触发器封装在ansible中 例如:

然后在ansible剧本中,只需使用
shell
模块触发它

#!/bin/bash

aws cloudformation list-stacks > foo &
aws cloudformation describe-stack --stack-name aaa > bar &