amazon.aws.ec2_launch_template 模块 – 管理 EC2 启动模板
注意
此模块是 amazon.aws 集合(版本 9.0.0)的一部分。
如果您正在使用 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install amazon.aws
。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。
要在 playbook 中使用它,请指定:amazon.aws.ec2_launch_template
。
community.aws 1.0.0 中的新增功能
概要
创建、修改和删除 EC2 启动模板,这些模板可用于创建单个实例或与自动扩展组一起使用。
amazon.aws.ec2_instance 和 community.aws.autoscaling_group 模块可以传递一个启动模板,其中包含实例大小、磁盘类型、子网等设置,而不是在这些任务上指定所有参数。
要求
执行此模块的主机需要以下要求。
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 保持一致,在 5.1.0 版本中添加了 aws_access_key_id 别名。 ec2_access_key 别名已弃用,将在 2024-12-01 之后的版本中删除。 对 |
|
在验证 SSL 证书时使用的 CA 包的位置。 也可以使用 |
|
用于修改 botocore 配置的字典。 参数可以在 AWS 文档中找到 https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config。 |
|
块设备映射。为块设备映射提供快照 ID 和加密值作为参数会导致错误。这是因为只有空白卷才能在启动时加密,而这些卷不是从快照创建的。如果快照是卷的基础,则它包含定义的数据,并且无法使用此操作更改其加密状态。 |
|
设备名称(例如, |
|
用于在实例启动时自动设置 EBS 卷的参数。 |
|
指示是否在实例终止时删除 EBS 卷。 选项
|
|
指示 EBS 卷是否加密。加密的卷只能附加到支持 Amazon EBS 加密的实例。如果要从快照创建卷,则不能指定加密值。 选项
|
|
该卷支持的每秒 I/O 操作 (IOPS) 次数。对于 io1,这表示为卷预配置的 IOPS 次数。对于 gp2,这表示卷的基准性能以及卷累积用于突发的 I/O 积分的速率。有关通用 SSD 基准性能、I/O 积分和突发的更多信息,请参阅 Amazon Elastic Compute Cloud 用户指南中的 Amazon EBS 卷类型。 条件:此参数是创建 io1 卷的请求所必需的;它不用于创建 gp2、st1、sc1 或标准卷的请求。 |
|
用于加密的 AWS 密钥管理服务 (AWS KMS) CMK 的 ARN。 |
|
从中创建卷的快照的 ID。 |
|
为 gp3 卷预配置的吞吐量,最大为 1,000 MiB/s。有效范围 - 最小值为 |
|
卷的大小,以 GiB 为单位。 默认值:如果您要从快照创建卷且未指定卷大小,则默认值为快照大小。 |
|
卷类型 |
|
禁止 AMI 的块设备映射中包含的指定设备。 |
|
虚拟设备名称 (ephemeralN)。实例存储卷从 0 开始编号。具有 2 个可用实例存储卷的实例类型可以为 ephemeral0 和 ephemeral1 指定映射。可用实例存储卷的数量取决于实例类型。连接到实例后,必须挂载卷。 |
|
为此模板创建的 EC2 实例选择 CPU 设置。 更多信息,请参阅http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html |
|
实例的 CPU 核心数。 |
|
每个 CPU 核心的线程数。要禁用实例的 Intel 超线程技术,请指定值 |
|
实例 CPU 使用的信用选项。仅对 T2 或 T3 实例有效。 |
|
T2 或 T3 实例 CPU 使用的信用选项。有效值为 |
|
使用 也可以使用 选项
|
|
当用户基于此模板启动新实例时,哪个版本应为默认版本?默认情况下,最新版本将成为默认版本。 默认值: |
|
这有助于保护实例免受意外终止。 如果设置为 选项
|
|
指示该实例是否针对 Amazon EBS I/O 进行了优化。此优化为 Amazon EBS 提供专用吞吐量和优化的配置堆栈,以提供最佳的 Amazon EBS I/O 性能。并非所有实例类型都提供此优化。使用 EBS 优化实例时,需支付额外的使用费。 选项
|
|
弹性 GPU 附件的设置。有关详细信息,请参阅 https://aws.amazon.com/ec2/elastic-gpus/。 |
|
要附加的弹性 GPU 的类型 |
|
连接到默认 AWS 端点之外的 URL。虽然这可用于连接到其他 AWS 兼容服务,但 amazon.aws 和 community.aws 集合仅针对 AWS 进行测试。 也可以使用 ec2_url 和 s3_url 别名已弃用,将在 2024-12-01 之后的版本中删除。 对 |
|
IAM 实例配置文件的名称或 ARN。需要描述现有实例角色的权限以确认 ARN 格式正确。 |
|
用于使用此模板启动的新实例的 AMI ID。由于 AMI 不是全局资源,因此此值取决于区域。 |
|
指示当您使用操作系统关机命令从实例启动关机时,实例是停止还是终止。 选项
|
|
备用实例市场的选项,目前仅支持竞价市场。 |
|
市场类型。这应始终为 |
|
竞价市场特定设置。 |
|
竞价型实例(也称为竞价块)所需的持续时间(以分钟为单位)。 此值必须是 |
|
当竞价型实例中断时的行为。默认为 选项
|
|
您愿意为这个竞价型实例支付的最高小时价格。 |
|
要发送的请求类型。 选项
|
|
实例类型,例如 |
|
内核的 ID。 我们建议您使用 PV-GRUB 而不是内核和 RAM 磁盘。有关详细信息,请参阅 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html |
|
密钥对的名称。您可以使用 amazon.aws.ec2_key 创建密钥对。 如果您不指定密钥对,则除非您选择配置为允许用户以其他方式登录的 AMI,否则您无法连接到实例。 |
|
配置 EC2 元数据选项。 有关详细信息,请参阅 IMDS 文档 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html。 |
|
此参数启用或禁用实例上的 HTTP 元数据端点。 选项
|
|
实例元数据端点是否可通过 IPv6 访问。 选项
|
|
实例元数据请求所需的 HTTP PUT 响应跃点限制。 数值越大,实例元数据请求可以传输的距离越远。 默认值: |
|
实例元数据请求的令牌使用状态。 选项
|
|
是否可通过元数据端点使用实例标签( 选项
|
|
实例监控的设置。 |
|
是否为新实例启用详细监控。这将产生额外的费用。 选项
|
|
一个或多个网络接口。 |
|
将公共 IPv4 地址与新网络接口的 eth0 关联。 选项
|
|
指示当实例终止时是否删除网络接口。 选项
|
|
网络接口的描述。 |
|
网络接口附件的设备索引。 |
|
要在此实例上包含的安全组 ID 列表。 |
|
要分配给网络接口的 IPv6 地址数量。 Amazon EC2 会自动从子网范围中选择 IPv6 地址。 如果指定 |
|
子网 IPv6 CIDR 块范围中的一个或多个特定 IPv6 地址的列表。 如果指定 |
|
要附加的网络接口的 eni ID。 |
|
网络接口的主私有 IPv4 地址。 |
|
网络接口的子网 ID。 |
|
实例的放置组设置。 |
|
专用主机上实例的亲和性设置。 |
|
实例的可用区。 |
|
实例的放置组的名称。 |
|
实例的专用主机的 ID。 |
|
实例的租户(如果实例在 VPC 中运行)。租户为 dedicated 的实例在单租户硬件上运行。 |
|
用于身份验证的已命名 AWS 配置文件。 有关命名配置文件的更多信息,请参阅 AWS 文档:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html。 也可以使用 profile 选项与 aws_access_key、aws_secret_key 和 security_token 选项互斥。 |
|
如果 如果未设置 以 选项
|
|
用于启动实例的 RAM 磁盘的 ID。我们建议您使用 PV-GRUB 而不是内核和 RAM 磁盘。有关更多信息,请参阅 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html |
|
要使用的 AWS 区域。 对于 IAM、Route53 和 CloudFront 等全局服务,region 将被忽略。 也可以使用 有关更多信息,请参阅 Amazon AWS 文档:http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region。
对 |
|
AWS 私有访问密钥。 有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys。 也可以按优先级降序使用 secret_key 和 profile 选项互斥。 aws_secret_access_key 别名在 5.1.0 版本中添加,以与 AWS botocore SDK 保持一致。 ec2_secret_key 别名已弃用,将在 2024-12-01 之后的版本中删除。 对 |
|
新实例将添加到其中的安全组 ID 列表(VPC 或 EC2-Classic)。 |
|
新实例将添加到其中的安全组名称列表(默认 VPC 或 EC2-Classic)。对于除默认 VPC 之外的任何 VPC,您必须使用 |
|
用于临时凭证的 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 之后的版本中删除。 对 |
|
新版本所基于的启动模板版本的版本号。 新版本继承了源版本相同的启动参数,但您明确指定的参数除外。 除非明确包含,否则在创建新版本时,应用于 默认值: |
|
启动模板是否应存在。 目前不支持删除启动模板的特定版本。 选项
|
|
当使用此启动模板时,要应用于资源的标签。 |
|
要标记的资源类型。 如果实例不包含您指定的资源类型,则实例启动将失败。 选项
|
|
要应用于资源类型的一组键值对。 标签键约束:标签键区分大小写,最多接受 127 个 Unicode 字符。不能以 aws: 开头 标签值约束:标签值区分大小写,最多接受 255 个 Unicode 字符。 |
|
表示要应用于资源的标签的字典。 如果未设置 |
|
启动模板的 ID,可用于除创建新启动模板外的所有情况。 必须指定 |
|
模板名称。这在您使用的区域-帐户组合中必须是唯一的。 如果不存在具有指定名称的启动模板,则会创建新的启动模板。 如果已存在具有指定名称的启动模板,且配置未更改,则不会发生任何操作。 如果已存在具有指定名称的启动模板,且配置已更改,则会创建启动模板的新版本。 必须指定 |
|
要提供给实例的 Base64 编码的用户数据。有关更多信息,请参阅 Linux http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html 和 Windows http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data 上关于用户数据的文档。 |
|
设置为 强烈建议不要设置 validate_certs=false,作为替代方案,请考虑改为设置 aws_ca_bundle。 选项
|
|
启动模板版本的描述。 默认值: |
|
注释
注意
使用的
tags
选项已在 9.0.0 版本中更新,以应用于启动模板资源而不是启动模板资源。使用
tag_specifications
定义当使用此启动模板时要应用于资源的标签。在 9.0.0 版本中增加了对
purge_tags
的支持。注意: 对于模块,环境变量和配置文件是从 Ansible “主机” 上下文读取的,而不是从“控制器”上下文读取的。因此,可能需要将文件显式复制到“主机”。对于查找和连接插件,环境变量和配置文件是从 Ansible “控制器” 上下文读取的,而不是从“主机”上下文读取的。
Ansible 使用的 AWS SDK (boto3) 也可能从 Ansible “主机” 上下文中的配置文件(通常是
~/.aws/credentials
)读取凭证和其他设置的默认值,例如区域。有关更多信息,请参阅 https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html。
示例
- name: Create an ec2 launch template
amazon.aws.ec2_launch_template:
name: "my_template"
image_id: "ami-04b762b4289fba92b"
key_name: my_ssh_key
instance_type: t2.micro
iam_instance_profile: myTestProfile
disable_api_termination: true
- name: >
Create a new version of an existing ec2 launch template with a different instance type,
while leaving an older version as the default version
amazon.aws.ec2_launch_template:
name: "my_template"
default_version: 1
instance_type: c5.4xlarge
- name: Delete an ec2 launch template
amazon.aws.ec2_launch_template:
name: "my_template"
state: absent
- name: Delete a specific version of an ec2 launch template
amazon.aws.ec2_launch_template:
name: "my_template"
versions_to_delete:
- 2
state: absent
- name: Delete a specific version of an ec2 launch template and change the default version
amazon.aws.ec2_launch_template:
name: "my_template"
versions_to_delete:
- 1
default_version: 2
state: absent
- name: Create an ec2 launch template with specific tags
amazon.aws.ec2_launch_template:
name: "my_template"
image_id: "ami-04b762b4289fba92b"
instance_type: t2.micro
disable_api_termination: true
tags:
Some: tag
Another: tag
- name: Create an ec2 launch template with different tag for volume and instance
amazon.aws.ec2_launch_template:
name: "my_template"
image_id: "ami-04b762b4289fba92b"
instance_type: t2.micro
block_device_mappings:
- device_name: /dev/sdb
ebs:
volume_size: 20
delete_on_termination: true
volume_type: standard
tag_specifications:
- resource_type: instance
tags:
OsType: Linux
- resource_type: volume
tags:
foo: bar
返回值
常见的返回值已在此处记录 此处,以下是此模块独有的字段
键 |
描述 |
---|---|
创建启动模板的时间。 返回: 总是 |
|
创建启动模板的主体。 返回: 总是 |
|
启动模板默认版本的版本号。 返回: 总是 |
|
启动模板最新版本的版本号。 返回: 总是 |
|
启动模板的 ID。 返回: 总是 |
|
启动模板的名称。 返回: 总是 |
|
分配给映像的标签字典。 返回: 当 AMI 创建或已存在时 示例: |
|
如果仅指定模板名称,则将使用的版本。通常这与最新版本相同,但不总是这样。 返回: 当 |
|
有关已删除的启动模板的信息。 返回: 当 |
|
创建启动模板的时间。 返回: 总是 |
|
创建启动模板的主体。 返回: 总是 |
|
启动模板默认版本的版本号。 返回: 总是 |
|
启动模板最新版本的版本号。 返回: 总是 |
|
启动模板的 ID。 返回: 总是 |
|
启动模板的名称。 返回: 总是 |
|
分配给映像的标签字典。 返回: 当 AMI 创建或已存在时 示例: |
|
有关已删除的启动模板版本的信息。 返回: 当 |
|
启动模板的 ID。 返回: 总是 |
|
启动模板的名称。 返回: 总是 |
|
启动模板的版本号。 返回: 总是 |
|
启动模板的最新可用版本。 返回: 当 |
|
创建启动模板的时间。 返回: 总是 |
|
创建启动模板的主体。 返回: 总是 |
|
启动模板默认版本的版本号。 返回: 总是 |
|
启动模板最新版本的版本号。 返回: 总是 |
|
启动模板的 ID。 返回: 总是 |
|
启动模板的名称。 返回: 总是 |
|
分配给映像的标签字典。 返回: 当 AMI 创建或已存在时 示例: |
|
启动模板的最新可用版本号。 返回: 当 |
|
启动模板的最新可用版本。 返回: 当 |
|
创建启动模板的时间。 返回: 总是 |
|
创建启动模板的主体。 返回: 总是 |
|
启动模板默认版本的版本号。 返回: 总是 |
|
启动模板最新版本的版本号。 返回: 总是 |
|
启动模板的 ID。 返回: 总是 |
|
启动模板的名称。 返回: 总是 |
|
分配给映像的标签字典。 返回: 当 AMI 创建或已存在时 示例: |
|
启动模板的所有可用版本。 返回: 当 |
|
创建版本的时间。 返回: 总是 |
|
创建版本的主体。 返回: 总是 |
|
指示该版本是否为默认版本。 返回: 总是 |
|
有关启动模板的信息。 返回: 总是 示例: |
|
块设备映射。 返回: 如果适用 |
|
设备名称。 返回: 总是 |
|
有关 EBS 卷的块设备的信息。 返回: 如果适用 |
|
指示是否在实例终止时删除 EBS 卷。 返回: 总是 |
|
指示 EBS 卷是否已加密。 返回: 总是 |
|
该卷支持的每秒 I/O 操作数 (IOPS)。 返回: 总是 |
|
用于加密的密钥管理服务 (KMS) CMK 的 ARN。 返回: 总是 |
|
快照的 ID。 返回: 总是 |
|
该卷支持的吞吐量,以 MiB/s 为单位。 返回: 总是 |
|
卷的大小,以 GiB 为单位。 返回: 总是 |
|
卷类型。 返回: 总是 |
|
要从块设备映射中省略设备,请指定一个空字符串。 返回: 成功 |
|
虚拟设备名称。 返回: 总是 |
|
实例的 CPU 选项。 返回: 如果适用 |
|
指示是否为实例启用了 AMD SEV-SNP。 返回: 如果适用 |
|
实例的 CPU 核心数。 返回: 如果适用 |
|
每个 CPU 核心的线程数。 返回: 如果适用 |
|
如果设置为 true,则表示无法使用 Amazon EC2 控制台、命令行工具或 API 终止实例。 返回: 如果适用 |
|
指示实例是否针对 Amazon EBS I/O 进行了优化。 返回: 总是 |
|
指示是否为实例启用了 Amazon Web Services Nitro Enclaves。 返回: 如果适用 |
|
如果此参数设置为 true,则为实例启用 Amazon Web Services Nitro Enclaves。 返回: 总是 |
|
IAM 实例配置文件。 返回: 如果应用 |
|
实例配置文件的 Amazon 资源名称 (ARN)。 返回: 总是 |
|
实例配置文件的名称。 返回: 总是 |
|
AMI 的 ID 或 Systems Manager 参数。 返回: 如果适用 |
|
指示当您从实例启动关闭时,实例是停止还是终止。 返回: 如果适用 |
|
实例类型。 返回: 如果适用 |
|
内核的 ID。 返回: 如果适用 |
|
密钥对的名称。 返回: 如果适用 |
|
实例的元数据选项。 返回: 如果适用 |
|
启用或禁用实例上的 HTTP 元数据端点。 返回: 如果适用 |
|
为实例元数据服务启用或禁用 IPv6 端点。 返回: 如果适用 |
|
实例元数据请求所需的 HTTP PUT 响应跃点限制。 返回: 如果适用 |
|
指示是否需要 IMDSv2。 返回: 如果适用 |
|
设置为启用以允许从实例元数据访问实例标签。 返回: 如果适用 |
|
元数据选项更改的状态。 返回: 如果适用 |
|
实例的监控。 返回: 如果适用 |
|
指示是否启用详细监控。否则,将启用基本监控。 返回: 总是 |
|
网络接口。 返回: 如果适用 |
|
指示是否将运营商 IP 地址与新网络接口的 eth0 关联。 返回: 总是 |
|
指示是否将公共 IPv4 地址与新网络接口的 eth0 关联。 返回: 总是 |
|
安全组连接跟踪规范,使您可以设置弹性网络接口上连接跟踪的超时时间。 返回: 如果适用 |
|
处于已建立状态的空闲 TCP 连接的超时时间(以秒为单位)。 返回: 总是 |
|
被归类为流的空闲 UDP 流的超时时间(以秒为单位),这些流已看到多个请求-响应事务。 返回: 总是 |
|
仅在一个方向或单个请求-响应事务中看到流量的空闲 UDP 流的超时时间(以秒为单位)。 返回: 总是 |
|
指示当实例终止时是否删除网络接口。 返回: 总是 |
|
网络接口的描述。 返回: 总是 |
|
网络接口附件的设备索引。 返回: 总是 |
|
包含从启动模板启动的实例的 ENA Express 设置。 返回: 如果适用 |
|
指示是否为网络接口启用了 ENA Express。 返回: 总是 |
|
为 UDP 网络流量配置 ENA Express。 返回: 总是 |
|
指示与实例之间的 UDP 流量是否使用 ENA Express。 返回: 总是 |
|
一个或多个安全组的 ID。 返回: 如果适用 |
|
网络接口的类型。 返回: 总是 |
|
Amazon Web Services 自动分配给网络接口的 IPv4 前缀的数量。 返回: 如果适用 |
|
分配给网络接口的 IPv4 前缀列表。 返回: 如果适用 |
|
分配给网络接口的 IPv4 委托前缀。 返回: 总是 |
|
网络接口的 IPv6 地址数。 返回: 如果适用 |
|
网络接口的 IPv6 地址。 返回: 如果适用 |
|
IPv6 地址。 返回: 总是 |
|
确定与网络接口关联的 IPv6 地址是否为主要 IPv6 地址。 返回: 总是 |
|
Amazon Web Services 自动分配给网络接口的 IPv6 前缀的数量。 返回: 如果适用 |
|
分配给网络接口的 IPv6 前缀列表。 返回: 如果适用 |
|
分配给网络接口的 IPv6 委托前缀。 返回: 总是 |
|
网卡的索引。 返回: 如果适用 |
|
网络接口的 ID。 返回: 总是 |
|
网络接口的主要 IPv6 地址。 返回: 如果适用 |
|
网络接口的主私有 IPv4 地址。 返回: 如果适用 |
|
私有 IPv4 地址列表。 返回: 如果适用 |
|
指示私有 IPv4 地址是否为主要私有 IPv4 地址。 返回: 总是 |
|
私有 IPv4 地址。 返回: 总是 |
|
网络接口的辅助私有 IPv4 地址数。 返回: 如果适用 |
|
网络接口的子网 ID。 返回: 总是 |
|
实例的放置位置。 返回: 如果适用 |
|
专用主机上实例的亲和性设置。 返回: 如果适用 |
|
实例的可用区。 返回: 如果适用 |
|
放置组的组 ID。 返回: 如果适用 |
|
实例的放置组的名称。 返回: 如果适用 |
|
实例的专用主机的 ID。 返回: 如果适用 |
|
在其中启动实例的主机资源组的 ARN。 返回: 如果适用 |
|
实例应在其中启动的分区号。 返回: 如果适用 |
|
实例的租户。 返回: 如果适用 |
|
RAM 磁盘的 ID(如果适用)。 返回: 如果适用 |
|
安全组 ID。 返回: 如果适用 |
|
安全组名称。 返回: 如果适用 |
|
应用于实例启动期间创建的资源的标签。 返回: 如果适用 |
|
要标记的资源类型。 返回: 总是 |
|
资源的标签。 返回: 成功 |
|
标签的键。 返回: 总是 |
|
标签的值。 返回: 总是 |
|
实例的用户数据。 返回: 如果适用 |
|
启动模板的 ID。 返回: 总是 |
|
启动模板的名称。 返回: 总是 |
|
版本的描述。 返回: 总是 |
|
版本号。 返回: 总是 |