amazon.aws.ec2_launch_template 模块 – 管理 EC2 启动模板
注意
此模块是 amazon.aws 集合 (版本 9.0.0) 的一部分。
如果您使用的是 ansible
软件包,则可能已安装此集合。它不包含在 ansible-core
中。要检查是否已安装它,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install amazon.aws
。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求。
要在剧本中使用它,请指定: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 核心的线程数。要禁用实例的英特尔超线程技术,请指定值为 |
|
实例 CPU 使用的信用额选项。仅适用于 T2 或 T3 实例。 |
|
T2 或 T3 实例 CPU 使用的信用额选项。有效值为 |
|
使用 也可以使用 选项
|
|
当用户基于此模板启动新实例时,哪个版本应为默认版本?默认情况下,最新版本将设置为默认版本。 默认值: |
|
这有助于保护实例免受意外终止。 如果设置为 选项
|
|
指示实例是否针对 Amazon EBS I/O 进行了优化。此优化为 Amazon EBS 提供专用吞吐量和优化的配置堆栈,以提供最佳的 Amazon EBS I/O 性能。并非所有实例类型都提供此优化。使用 EBS 优化的实例时,将收取额外费用。 选项
|
|
Elastic GPU 附加的设置。有关详细信息,请参见 https://aws.amazon.com/ec2/elastic-gpus/。 |
|
要附加的 Elastic 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 之类的全球服务,将忽略区域。 也可以使用 更多信息请参见 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 botocore SDK 保持一致,在 5.1.0 版本中添加了aws_secret_access_key别名。 已弃用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选项是互斥的。 在 3.2.0 版本中添加了别名aws_session_token和session_token,在 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。 选项
|
|
启动模板版本的描述。 默认值: |
|
注释
注意
在 9.0.0 版本中,使用了
tags
选项,将其应用于启动模板资源而不是启动模板资源。使用
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 或 Systems Manager 参数的 ID。 返回:如果适用 |
|
指示从实例启动关机时,实例是否停止或终止。 返回:如果适用 |
|
实例类型。 返回:如果适用 |
|
内核的 ID。 返回:如果适用 |
|
密钥对的名称。 返回:如果适用 |
|
实例的元数据选项。 返回:如果适用 |
|
启用或禁用实例上的 HTTP 元数据端点。 返回:如果适用 |
|
启用或禁用实例元数据服务的 IPv6 端点。 返回:如果适用 |
|
实例元数据请求的所需 HTTP PUT 响应跳数限制。 返回:如果适用 |
|
指示是否需要 IMDSv2。 返回:如果适用 |
|
设置为 enabled 以允许从实例元数据访问实例标签。 返回:如果适用 |
|
元数据选项更改的状态。 返回:如果适用 |
|
实例的监控。 返回:如果适用 |
|
指示是否启用了详细监控。否则,将启用基本监控。 返回:始终 |
|
网络接口。 返回:如果适用 |
|
指示是否为新的网络接口将运营商 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。 返回:始终 |
|
启动模板的名称。 返回:始终 |
|
版本的描述。 返回:始终 |
|
版本号。 返回:始终 |