amazon.aws.cloudformation 模块 – 创建或删除 AWS CloudFormation 堆栈
注意
此模块是 amazon.aws 集合(版本 9.0.0)的一部分。
如果您正在使用 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install amazon.aws
。您需要其他要求才能使用此模块,请参阅 要求 以了解详细信息。
要在 playbook 中使用它,请指定:amazon.aws.cloudformation
。
amazon.aws 1.0.0 中的新增功能
概要
启动或更新 AWS CloudFormation 堆栈并等待其完成。
要求
执行此模块的主机需要以下要求。
python >= 3.6
boto3 >= 1.28.0
botocore >= 1.31.0
参数
参数 |
注释 |
---|---|
AWS 访问密钥 ID。 有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys。 也可以使用 aws_access_key 和 profile 选项是互斥的。 为了与 AWS botocore SDK 保持一致,aws_access_key_id 别名已在 5.1.0 版本中添加。 ec2_access_key 别名已被弃用,将在 2024-12-01 之后的版本中删除。 对 |
|
验证 SSL 证书时使用的 CA 捆绑包的位置。 也可以使用 |
|
一个用于修改 botocore 配置的字典。 参数可以在 AWS 文档中找到 https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config。 |
|
等待下一次重试的秒数。 默认值: |
|
重试之间等待的最大时间量。 默认值: |
|
重试操作的次数。 AWS API 节流机制导致 CloudFormation 模块失败,因此我们必须重试几次。 默认值: |
|
指定堆栈模板包含的功能。 有效值为 默认值: |
|
创建变更集时给定的变更集名称。 仅当 默认情况下,将根据输入参数生成一个以 Ansible-STACKNAME 为前缀的名称。有关详细信息,请参阅 AWS 变更集文档 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html |
|
如果堆栈已存在,则创建变更集而不是直接应用更改。请参阅 AWS 变更集文档 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html。 警告: 如果堆栈不存在,则将在不使用变更集的情况下创建它。如果 选择
|
|
堆栈状态变为 |
|
使用 也可以使用 选择
|
|
如果堆栈创建失败,回滚将移除该堆栈。 选择
|
|
连接时使用的 URL,而不是默认的 AWS 端点。虽然这可以用于连接到其他 AWS 兼容服务,但 amazon.aws 和 community.aws 集合仅针对 AWS 进行了测试。 也可以使用 ec2_url 和 s3_url 别名已弃用,将在 2024-12-01 之后的版本中移除。 对 |
|
在创建或更新堆栈时,从堆栈中获取的最大 CloudFormation 事件数。 默认值: |
|
以逗号分隔的简单通知服务 (SNS) 主题 ARN 列表,用于发布与堆栈相关的事件。 |
|
用于身份验证的已命名的 AWS 配置文件。 有关已命名配置文件的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html。 也可以使用 profile 选项与 aws_access_key、aws_secret_key 和 security_token 选项互斥。 |
|
要使用的 AWS 区域。 对于 IAM、Route53 和 CloudFront 等全局服务,将忽略 region。 也可以使用 有关更多信息,请参阅 Amazon AWS 文档 http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region。
对 |
|
AWS CloudFormation 用于创建堆栈的角色。请参阅 AWS CloudFormation 服务角色文档 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-servicerole.html |
|
AWS secret access key。 有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys。 也可以使用 secret_key 和 profile 选项互斥。 为了与 AWS botocore SDK 保持一致,aws_secret_access_key 别名在 5.1.0 版本中添加。 ec2_secret_key 别名已弃用,将在 2024-12-01 之后的版本中移除。 对 |
|
用于临时凭证的 AWS STS 会话令牌。 有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys。 也可以使用 security_token 和 profile 选项互斥。 别名 aws_session_token 和 session_token 在 3.2.0 版本中添加,参数在 6.0.0 版本中从 security_token 重命名为 session_token。 security_token、aws_security_token 和 access_token 别名已弃用,将在 2024-12-01 之后的版本中移除。 对 |
|
CloudFormation 堆栈的名称。 |
|
包含 CloudFormation 堆栈策略的文件的路径。策略一旦设置就无法删除,但可以修改。例如,允许所有更新 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html#d0e9051 |
|
JSON 格式的 CloudFormation 堆栈策略。策略一旦设置就无法删除,但可以修改。例如,允许所有更新 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html#d0e9051 |
|
仅在此更新期间应用的 cloudformation 堆栈策略的主体。 |
|
如果 如果 如果 选择
|
|
要在堆栈创建期间与堆栈及其资源关联的标签字典。 稍后可以更新,更新标签会删除以前的条目。 |
|
CloudFormation 模板的本地路径。 这必须是文件的完整路径,相对于工作目录。如果使用角色,则可能类似于 如果 如果
|
|
模板主体。使用此选项传入 CloudFormation 模板的实际主体。 如果 如果 |
|
堆栈的所有模板变量的哈希列表。该值可以是字符串或字典。 字典可用于设置其他模板参数属性,例如 UsePreviousValue (请参见示例)。 默认值: |
|
包含模板主体的文件的位置。该 URL 必须指向与堆栈位于同一区域的 S3 存储桶中的模板(最大大小为 307,200 字节)。 如果 如果 |
|
启用或禁用堆栈上的终止保护。 选择
|
|
设置为 强烈建议不要设置 validate_certs=false,作为替代方法,请考虑设置 aws_ca_bundle。 选择
|
注释
注意
注意: 对于模块,环境变量和配置文件是从 Ansible“主机”上下文而不是“控制器”上下文中读取的。因此,可能需要将文件显式复制到“主机”。对于查找和连接插件,环境变量和配置文件是从 Ansible“控制器”上下文而不是“主机”上下文中读取的。
Ansible 使用的 AWS SDK (boto3) 也可能从 Ansible “主机” 上下文(通常是
~/.aws/credentials
)的配置文件中读取凭据和其他设置(例如区域)的默认值。有关更多信息,请参阅 https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html。
示例
- name: create a cloudformation stack
amazon.aws.cloudformation:
stack_name: "ansible-cloudformation"
state: "present"
region: "us-east-1"
disable_rollback: true
# The template parameter has been deprecated, use template_body with lookup instead.
# template: "files/cloudformation-example.json"
template_body: "{{ lookup('file', 'cloudformation-example.json') }}"
template_parameters:
KeyName: "jmartin"
DiskType: "ephemeral"
InstanceType: "m1.small"
ClusterSize: 3
tags:
Stack: "ansible-cloudformation"
# Basic role example
- name: create a stack, specify role that cloudformation assumes
amazon.aws.cloudformation:
stack_name: "ansible-cloudformation"
state: "present"
region: "us-east-1"
disable_rollback: true
# The template parameter has been deprecated, use template_body with lookup instead.
# template: "roles/cloudformation/files/cloudformation-example.json"
template_body: "{{ lookup('file', 'cloudformation-example.json') }}"
role_arn: 'arn:aws:iam::123456789012:role/cloudformation-iam-role'
- name: delete a stack
amazon.aws.cloudformation:
stack_name: "ansible-cloudformation-old"
state: "absent"
# Create a stack, pass in template from a URL, disable rollback if stack creation fails,
# pass in some parameters to the template, provide tags for resources created
- name: create a stack, pass in the template via an URL
amazon.aws.cloudformation:
stack_name: "ansible-cloudformation"
state: present
region: us-east-1
disable_rollback: true
template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template
template_parameters:
KeyName: jmartin
DiskType: ephemeral
InstanceType: m1.small
ClusterSize: 3
tags:
Stack: ansible-cloudformation
# Create a stack, passing in template body using lookup of Jinja2 template, disable rollback if stack creation fails,
# pass in some parameters to the template, provide tags for resources created
- name: create a stack, pass in the template body via lookup template
amazon.aws.cloudformation:
stack_name: "ansible-cloudformation"
state: present
region: us-east-1
disable_rollback: true
template_body: "{{ lookup('template', 'cloudformation.j2') }}"
template_parameters:
KeyName: jmartin
DiskType: ephemeral
InstanceType: m1.small
ClusterSize: 3
tags:
Stack: ansible-cloudformation
# Pass a template parameter which uses CloudFormation's UsePreviousValue attribute
# When use_previous_value is set to True, the given value will be ignored and
# CloudFormation will use the value from a previously submitted template.
# If use_previous_value is set to False (default) the given value is used.
- amazon.aws.cloudformation:
stack_name: "ansible-cloudformation"
state: "present"
region: "us-east-1"
template: "files/cloudformation-example.json"
template_parameters:
DBSnapshotIdentifier:
use_previous_value: true
value: arn:aws:rds:es-east-1:123456789012:snapshot:rds:my-db-snapshot
DBName:
use_previous_value: true
tags:
Stack: "ansible-cloudformation"
# Enable termination protection on a stack.
# If the stack already exists, this will update its termination protection
- name: enable termination protection during stack creation
amazon.aws.cloudformation:
stack_name: my_stack
state: present
template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template
termination_protection: true
# Configure TimeoutInMinutes before the stack status becomes CREATE_FAILED
# In this case, if disable_rollback is not set or is set to false, the stack will be rolled back.
- name: enable termination protection during stack creation
amazon.aws.cloudformation:
stack_name: my_stack
state: present
template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template
create_timeout: 5
# Configure rollback behaviour on the unsuccessful creation of a stack allowing
# CloudFormation to clean up, or do nothing in the event of an unsuccessful
# deployment
# In this case, if on_create_failure is set to "DELETE", it will clean up the stack if
# it fails to create
- name: create stack which will delete on creation failure
amazon.aws.cloudformation:
stack_name: my_stack
state: present
template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template
on_create_failure: DELETE
返回值
通用返回值已在此处记录:这里,以下是此模块特有的字段
键 |
描述 |
---|---|
创建时堆栈更改集的 ID。 返回: 当 示例: |
|
CloudFormation 事件日志中的最新事件。在某些情况下,这可能来自之前的运行。 返回: 始终 示例: |
|
调试日志。在修改或查找错误时很有用。 返回: 始终 示例: |
|
当前定义的所有堆栈输出的键值字典。如果没有堆栈输出,则为空字典。 返回: 当 示例: |
|
AWS 堆栈资源及其状态。字典列表,每个资源一个字典。 返回: 当 示例: |