amazon.aws.ec2_metadata_facts 模块 – 收集 EC2 中远程主机的 facts(实例元数据)
注意
此模块是 amazon.aws 集合(版本 9.0.0)的一部分。
如果您正在使用 ansible
包,您可能已经安装了这个集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install amazon.aws
。
要在 playbook 中使用它,请指定:amazon.aws.ec2_metadata_facts
。
amazon.aws 1.0.0 中的新功能
概要
此模块按照 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html 从 EC2 中的实例元数据端点获取数据。
必须从 EC2 实例本身内部调用此模块。
该模块配置为利用面向会话的实例元数据服务 v2 (IMDSv2) https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html。
如果 EC2 实例的 HttpEndpoint 参数 https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceMetadataOptions.html#API_ModifyInstanceMetadataOptions_RequestParameters 设置为禁用,则该模块在检索会话令牌时将返回错误。
参数
参数 |
注释 |
---|---|
为 值必须介于 默认值: |
注释
注意
稍后可能会添加用于筛选 ec2_metadata_facts 的参数。
示例
# Gather EC2 metadata facts
- amazon.aws.ec2_metadata_facts:
# Set a bigger value for X-aws-ec2-metadata-token-ttl-seconds header
- amazon.aws.ec2_metadata_facts:
metadata_token_ttl_seconds: 240
- debug:
msg: "This instance is a t1.micro"
when: ansible_ec2_instance_type == "t1.micro"
返回的 Facts
此模块返回的 Facts 会在 hostvars
主机 facts 中添加/更新,并且可以像任何其他主机 fact 一样按名称引用。它们不需要注册即可使用它们。
键 |
描述 |
---|---|
用于启动实例的 AMI ID。 返回: 成功 示例: |
|
如果您同时启动了多个实例,则此值表示实例启动的顺序。 启动的第一个实例的值为 0。 返回: 成功 示例: |
|
Amazon S3 中 AMI 清单文件的路径。 如果您使用 Amazon EBS 支持的 AMI 启动实例,则返回的结果未知。 返回: 成功 示例: |
|
重新捆绑以创建此 AMI 的任何实例的 AMI ID。 仅当 AMI 清单文件包含 ancestor-amis 键时,此值才会存在。 返回: 成功 示例: |
|
包含根/启动文件系统的虚拟设备。 返回: 成功 示例: |
|
与 Amazon EBS 卷关联的虚拟设备(如果存在)。 仅当在启动时或上次启动实例时存在 Amazon EBS 卷,它们才会出现在元数据中。 N 表示 Amazon EBS 卷的索引(例如 ebs1 或 ebs2)。 返回: 成功 示例: |
|
与临时设备关联的虚拟设备(如果存在)。N 表示临时卷的索引。 返回: 成功 示例: |
|
与根设备关联的虚拟设备或分区,或虚拟设备上的分区,其中根(/ 或 C)文件系统与给定的实例关联。 返回: 成功 示例: |
|
与交换空间关联的虚拟设备。并非总是存在。 返回: 成功 示例: |
|
值显示客户是否在 CloudWatch 中启用了详细的 1 分钟监控。 返回: 成功 示例: |
|
实例的私有 IPv4 DNS 主机名。 如果存在多个网络接口,则这是指 eth0 设备(设备号为 0 的设备)。 返回: 成功 示例: |
|
如果实例有关联的 IAM 角色,则包含有关上次更新实例配置文件的信息,包括实例的 LastUpdated 日期、InstanceProfileArn 和 InstanceProfileId。否则,不存在。 返回: 成功 示例: |
|
与实例关联的 InstanceProfile 的 ARN。 返回: 成功 |
|
与实例关联的 InstanceProfile 的 ID。 返回: 成功 |
|
上次与实例关联的 InstanceProfile 更改的时间。 返回: 成功 |
|
IAM 实例配置文件 ARN。 返回: 成功 示例: |
|
IAM 实例配置文件 ID。 返回: 成功 示例: |
|
IAM 信息上次更新时间。 返回: 成功 示例: |
|
IAM 实例角色。 返回: 成功 示例: |
|
如果实例有关联的 IAM 角色,则 role-name 是该角色的名称,并且 role-name 包含与该角色关联的临时安全凭证。否则,不存在。 返回: 成功 示例: |
|
IAM 角色访问密钥 ID。 返回: 成功 示例: |
|
IAM 代码。 返回: 成功 示例: |
|
IAM 角色凭证过期时间。 返回: 成功 示例: |
|
IAM 角色上次更新时间。 返回: 成功 示例: |
|
IAM 角色私有访问密钥。 返回: 成功 示例: |
|
IAM 角色令牌。 返回: 成功 示例: |
|
IAM 角色类型。 返回: 成功 示例: |
|
通知实例应该重新启动以准备捆绑。 返回: 成功 示例: |
|
此实例的 ID。 返回: 成功 示例: |
|
包含实例属性的 JSON,例如 instance-id、私有 IP 地址等。 返回: 成功 示例: |
|
返回: 成功 示例: |
|
实例系统架构。 返回: 成功 示例: |
|
实例启动的可用区。 返回: 成功 示例: |
|
此实例的账单产品。 返回: 成功 示例: |
|
启动的 AMI 的产品代码。 返回: 成功 示例: |
|
用于启动实例的 AMI ID。 返回: 成功 示例: |
|
此实例的 ID。 返回: 成功 示例: |
|
实例的类型。 返回: 成功 示例: |
|
如果适用,则为此实例启动的内核的 ID。 返回: 成功 示例: |
|
实例挂起时间。 返回: 成功 示例: |
|
实例的私有 IPv4 地址。 如果存在多个网络接口,则这是指 eth0 设备(设备号为 0 的设备)。 返回: 成功 示例: |
|
如果适用,则在启动时指定的 RAM 磁盘的 ID。 返回: 成功 示例: |
|
实例启动的区域。 返回: 成功 示例: |
|
身份文档版本。 返回: 成功 示例: |
|
用于根据签名验证文档的真实性和内容。 返回: 成功 示例: |
|
用于根据签名验证文档的真实性和内容。 返回: 成功 示例: |
|
可供其他方用于验证其来源和真实性的数据。 返回: 成功 示例: |
|
实例的购买选项。 返回: 成功 示例: |
|
实例的标签键列表。 如果未启用实例元数据中对标签(InstanceMetadataTags)的访问,则返回空列表。 返回: 成功 示例: |
|
实例的类型。 返回: 成功 示例: |
|
实例的私有 IPv4 DNS 主机名。 如果存在多个网络接口,则这是指 eth0 设备(设备号为 0 的设备)。 返回: 成功 示例: |
|
实例的私有 IPv4 地址。 如果存在多个网络接口,则这是指 eth0 设备(设备号为 0 的设备)。 返回: 成功 示例: |
|
实例的媒体访问控制 (MAC) 地址。 如果存在多个网络接口,则这是指 eth0 设备(设备号为 0 的设备)。 返回: 成功 示例: |
|
指标;不再可用。 返回: 成功 示例: |
|
与该接口关联的唯一设备编号。设备编号与设备名称相对应;例如,设备编号 2 表示 eth2 设备。 此类别对应于 Amazon EC2 API 和 AWS CLI 的 EC2 命令使用的 DeviceIndex 和 device-index 字段。 返回: 成功 示例: |
|
弹性网络接口 ID。 返回: 成功 示例: |
|
与每个公共 IP 地址关联并分配给该接口的私有 IPv4 地址。 返回: 成功 示例: |
|
与接口关联的 IPv6 地址。仅为在 VPC 中启动的实例返回。 返回: 成功 示例: |
|
接口的本地主机名。 返回: 成功 示例: |
|
与接口关联的私有 IPv4 地址。 返回: 成功 示例: |
|
实例的 MAC 地址。 返回: 成功 示例: |
|
网络接口的所有者的 ID。 在多接口环境中,接口可以由第三方(例如,弹性负载均衡)附加。 接口上的流量始终向接口所有者收费。 返回: 成功 示例: |
|
接口的公共 DNS (IPv4)。如果实例在 VPC 中,则仅当 enableDnsHostnames 属性设置为 true 时才返回此类别。 返回: 成功 示例: |
|
与接口关联的弹性 IP 地址。一个实例上可能有多个 IPv4 地址。 返回: 成功 示例: |
|
网络接口所属的安全组的 ID。仅为在 VPC 中启动的实例返回。 返回: 成功 示例: |
|
网络接口所属的安全组。仅为在 VPC 中启动的实例返回。 返回: 成功 示例: |
|
接口所在的子网的 ID。仅为在 VPC 中启动的实例返回。 返回: 成功 示例: |
|
接口所在的子网的 IPv4 CIDR 块。仅为在 VPC 中启动的实例返回。 返回: 成功 示例: |
|
接口所在的子网的 IPv6 CIDR 块。仅为在 VPC 中启动的实例返回。 返回: 成功 示例: |
|
接口所在的 VPC 的 ID。仅为在 VPC 中启动的实例返回。 返回: 成功 示例: |
|
接口所在的 VPC 的 IPv4 CIDR 块。仅为在 VPC 中启动的实例返回。 返回: 成功 示例: |
|
接口所在的 VPC 的 IPv4 CIDR 块。仅为在 VPC 中启动的实例返回。 返回: 成功 示例: |
|
接口所在的 VPC 的 IPv6 CIDR 块。仅为在 VPC 中启动的实例返回。 返回: 成功 示例: |
|
实例启动的可用区。 返回: 成功 示例: |
|
实例启动的区域。 返回: 成功 示例: |
|
与实例关联的产品代码(如果有)。 返回: 成功 示例: |
|
EC2 实例硬件配置文件。 返回: 成功 示例: |
|
实例的公共 DNS。如果实例在 VPC 中,则仅当 enableDnsHostnames 属性设置为 true 时才返回此类别。 返回: 成功 示例: |
|
公共 IPv4 地址。如果弹性 IP 地址与该实例关联,则返回的值是弹性 IP 地址。 返回: 成功 示例: |
|
公钥。仅当在实例启动时提供时才可用。 返回: 成功 示例: |
|
如果适用,则在启动时指定的 RAM 磁盘的 ID。 返回: 成功 示例: |
|
预留 ID。 返回: 成功 示例: |
|
应用于实例的安全组的名称。启动后,您只能更改在 VPC 中运行的实例的安全组。 此类更改会反映在此处以及 network/interfaces/macs/mac/security-groups 中。 返回: 成功 示例: |
|
该区域的 AWS 资源的域;例如,us-east-1 的 amazonaws.com。 返回: 成功 示例: |
|
资源所在的分区。对于标准 AWS 区域,分区为 aws。 如果您的资源位于其他分区中,则分区为 aws-partitionname。 例如,中国(北京)区域中的资源的分区是 aws-cn。 返回: 成功 示例: |
|
Spot 实例的操作系统将接收关闭信号的大致时间(UTC)。 仅当 Spot 实例已被 Amazon EC2 标记为终止时,此项才存在并包含时间值。 如果您自己终止了 Spot 实例,则 termination-time 项不会设置为时间。 返回: 成功 示例: |
|
实例用户数据。 返回: 成功 示例: |