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 中启用了详细的每分钟监控的值。 已返回:成功 示例: |
|
实例的专用 IPv4 DNS 主机名。 在存在多个网络接口的情况下,这指的是 eth0 设备(设备号为 0 的设备)。 已返回:成功 示例: |
|
如果实例与 IAM 角色关联,则包含有关上次更新实例配置文件的信息,包括实例的 LastUpdated 日期、InstanceProfileArn 和 InstanceProfileId。否则,不存在。 已返回:成功 示例: |
|
与实例关联的 InstanceProfile 的 ARN。 已返回:成功 |
|
与实例关联的 InstanceProfile 的 ID。 已返回:成功 |
|
上次关联到该实例的 InstanceProfile 更改时间。 已返回:成功 |
|
IAM 实例配置文件 ARN。 已返回:成功 示例: |
|
IAM 实例配置文件 ID。 已返回:成功 示例: |
|
IAM 信息最后更新时间。 已返回:成功 示例: |
|
IAM 实例角色。 已返回:成功 示例: |
|
如果实例关联了 IAM 角色,则 role-name 为角色名称,其中包含与该角色关联的临时安全凭证。否则,则不显示。 已返回:成功 示例: |
|
IAM 角色访问密钥 ID。 已返回:成功 示例: |
|
IAM 代码。 已返回:成功 示例: |
|
IAM 角色凭证过期时间。 已返回:成功 示例: |
|
IAM 角色最后更新时间。 已返回:成功 示例: |
|
IAM 角色密钥访问密钥。 已返回:成功 示例: |
|
IAM 角色令牌。 已返回:成功 示例: |
|
IAM 角色类型。 已返回:成功 示例: |
|
通知实例应重新启动以准备捆绑。 已返回:成功 示例: |
|
此实例的 ID。 已返回:成功 示例: |
|
包含实例属性(例如实例 ID、私有 IP 地址等)的 JSON。 已返回:成功 示例: |
|
已返回:成功 示例: |
|
实例系统架构。 已返回:成功 示例: |
|
启动实例的可用区。 已返回:成功 示例: |
|
此实例的计费产品。 已返回:成功 示例: |
|
已启动 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项设置为时间。 已返回:成功 示例: |
|
实例用户数据。 已返回:成功 示例: |