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 中的新增功能

概要

参数

参数

注释

metadata_token_ttl_seconds

整数

amazon.aws 8.2.0 中新增

X-aws-ec2-metadata-token-ttl-seconds 标头指定一个值。

值必须介于 121600 之间。

默认值: 60

备注

注意

  • 稍后可能会添加用于过滤 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 一样按名称引用。它们不需要注册即可使用。

描述

ansible_ec2_ami_id

字符串

用于启动实例的 AMI ID。

已返回:成功

示例: "ami-XXXXXXXX"

ansible_ec2_ami_launch_index

字符串

如果您同时启动了多个实例,则此值指示启动实例的顺序。

第一个启动的实例的值为 0。

已返回:成功

示例: "0"

ansible_ec2_ami_manifest_path

字符串

Amazon S3 中 AMI 清单文件的路径。

如果您使用 Amazon EBS 支持的 AMI 启动实例,则返回的结果未知。

已返回:成功

示例: "(unknown)"

ansible_ec2_ancestor_ami_ids

字符串

用于重新捆绑以创建此 AMI 的任何实例的 AMI ID。

只有当 AMI 清单文件包含 ancestor-amis 密钥时,此值才会存在。

已返回:成功

示例: "(unknown)"

ansible_ec2_block_device_mapping_ami

字符串

包含根/引导文件系统的虚拟设备。

已返回:成功

示例: "/dev/sda1"

ansible_ec2_block_device_mapping_ebsN

字符串

与 Amazon EBS 卷关联的虚拟设备(如果存在)。

只有在启动时或实例上次启动时存在 Amazon EBS 卷时,它们才会在元数据中可用。

N 表示 Amazon EBS 卷的索引(例如 ebs1 或 ebs2)。

已返回:成功

示例: "/dev/xvdb"

ansible_ec2_block_device_mapping_ephemeralN

字符串

与临时设备关联的虚拟设备(如果存在)。N 表示临时卷的索引。

已返回:成功

示例: "/dev/xvdc"

ansible_ec2_block_device_mapping_root

字符串

与根设备或虚拟设备上的分区关联的虚拟设备或分区,其中根(/ 或 C)文件系统与给定实例关联。

已返回:成功

示例: "/dev/sda1"

ansible_ec2_block_device_mapping_swap

字符串

与交换分区关联的虚拟设备。并非总是存在。

已返回:成功

示例: "/dev/sda2"

ansible_ec2_fws_instance_monitoring

字符串

显示客户是否在 CloudWatch 中启用了详细的每分钟监控的值。

已返回:成功

示例: "enabled"

ansible_ec2_hostname

字符串

实例的专用 IPv4 DNS 主机名。

在存在多个网络接口的情况下,这指的是 eth0 设备(设备号为 0 的设备)。

已返回:成功

示例: "ip-10-0-0-1.ec2.internal"

ansible_ec2_iam_info

复杂

如果实例与 IAM 角色关联,则包含有关上次更新实例配置文件的信息,包括实例的 LastUpdated 日期、InstanceProfileArn 和 InstanceProfileId。否则,不存在。

已返回:成功

示例: ""

InstanceProfileArn

字符串

与实例关联的 InstanceProfile 的 ARN。

已返回:成功

InstanceProfileId

字符串

与实例关联的 InstanceProfile 的 ID。

已返回:成功

LastUpdated

字符串

上次关联到该实例的 InstanceProfile 更改时间。

已返回:成功

ansible_ec2_iam_info_instanceprofilearn

字符串

IAM 实例配置文件 ARN。

已返回:成功

示例: "arn:aws:iam::123456789012:instance-profile/role_name"

ansible_ec2_iam_info_instanceprofileid

字符串

IAM 实例配置文件 ID。

已返回:成功

示例: ""

ansible_ec2_iam_info_lastupdated

字符串

IAM 信息最后更新时间。

已返回:成功

示例: "2017-05-12T02:42:27Z"

ansible_ec2_iam_instance_profile_role

字符串

IAM 实例角色。

已返回:成功

示例: "role_name"

ansible_ec2_iam_security_credentials_role_name

字符串

如果实例关联了 IAM 角色,则 role-name 为角色名称,其中包含与该角色关联的临时安全凭证。否则,则不显示。

已返回:成功

示例: ""

ansible_ec2_iam_security_credentials_role_name_accesskeyid

字符串

IAM 角色访问密钥 ID。

已返回:成功

示例: ""

ansible_ec2_iam_security_credentials_role_name_code

字符串

IAM 代码。

已返回:成功

示例: "Success"

ansible_ec2_iam_security_credentials_role_name_expiration

字符串

IAM 角色凭证过期时间。

已返回:成功

示例: "2017-05-12T09:11:41Z"

ansible_ec2_iam_security_credentials_role_name_lastupdated

字符串

IAM 角色最后更新时间。

已返回:成功

示例: "2017-05-12T02:40:44Z"

ansible_ec2_iam_security_credentials_role_name_secretaccesskey

字符串

IAM 角色密钥访问密钥。

已返回:成功

示例: ""

ansible_ec2_iam_security_credentials_role_name_token

字符串

IAM 角色令牌。

已返回:成功

示例: ""

ansible_ec2_iam_security_credentials_role_name_type

字符串

IAM 角色类型。

已返回:成功

示例: "AWS-HMAC"

ansible_ec2_instance_action

字符串

通知实例应重新启动以准备捆绑。

已返回:成功

示例: "none"

ansible_ec2_instance_id

字符串

此实例的 ID。

已返回:成功

示例: "i-XXXXXXXXXXXXXXXXX"

ansible_ec2_instance_identity_document

字符串

包含实例属性(例如实例 ID、私有 IP 地址等)的 JSON。

已返回:成功

示例: ""

ansible_ec2_instance_identity_document_accountid

字符串

已返回:成功

示例: "123456789012"

ansible_ec2_instance_identity_document_architecture

字符串

实例系统架构。

已返回:成功

示例: "x86_64"

ansible_ec2_instance_identity_document_availabilityzone

字符串

启动实例的可用区。

已返回:成功

示例: "us-east-1a"

ansible_ec2_instance_identity_document_billingproducts

字符串

此实例的计费产品。

已返回:成功

示例: ""

ansible_ec2_instance_identity_document_devpayproductcodes

字符串

已启动 AMI 的产品代码。

已返回:成功

示例: ""

ansible_ec2_instance_identity_document_imageid

字符串

用于启动实例的 AMI ID。

已返回:成功

示例: "ami-01234567"

ansible_ec2_instance_identity_document_instanceid

字符串

此实例的 ID。

已返回:成功

示例: "i-0123456789abcdef0"

ansible_ec2_instance_identity_document_instancetype

字符串

实例类型。

已返回:成功

示例: "m4.large"

ansible_ec2_instance_identity_document_kernelid

字符串

如果适用,则为与此实例一起启动的内核的 ID。

已返回:成功

示例: ""

ansible_ec2_instance_identity_document_pendingtime

字符串

实例挂起时间。

已返回:成功

示例: "2017-05-11T20:51:20Z"

ansible_ec2_instance_identity_document_privateip

字符串

实例的私有 IPv4 地址。

在存在多个网络接口的情况下,这指的是 eth0 设备(设备号为 0 的设备)。

已返回:成功

示例: "10.0.0.1"

ansible_ec2_instance_identity_document_ramdiskid

字符串

如果适用,则为启动时指定的 RAM 磁盘的 ID。

已返回:成功

示例: ""

ansible_ec2_instance_identity_document_region

字符串

启动实例的区域。

已返回:成功

示例: "us-east-1"

ansible_ec2_instance_identity_document_version

字符串

身份文档版本。

已返回:成功

示例: "2010-08-31"

ansible_ec2_instance_identity_pkcs7

字符串

用于根据签名验证文档的真实性和内容。

已返回:成功

示例: ""

ansible_ec2_instance_identity_rsa2048

字符串

用于根据签名验证文档的真实性和内容。

已返回:成功

示例: ""

ansible_ec2_instance_identity_signature

字符串

其他方可用于验证其来源和真实性的数据。

已返回:成功

示例: ""

ansible_ec2_instance_life_cycle

字符串

实例的购买选项。

已返回:成功

示例: "on-demand"

ansible_ec2_instance_tags_keys

列表 / 元素=字符串

在 amazon.aws 5.5.0 中添加

实例的标签键列表。

如果未启用实例元数据中的标签 (InstanceMetadataTags) 访问权限,则返回空列表。

已返回:成功

示例: ["tagKey1", "tag_key2"]

ansible_ec2_instance_type

字符串

实例的类型。

已返回:成功

示例: "m4.large"

ansible_ec2_local_hostname

字符串

实例的专用 IPv4 DNS 主机名。

在存在多个网络接口的情况下,这指的是 eth0 设备(设备号为 0 的设备)。

已返回:成功

示例: "ip-10-0-0-1.ec2.internal"

ansible_ec2_local_ipv4

字符串

实例的私有 IPv4 地址。

在存在多个网络接口的情况下,这指的是 eth0 设备(设备号为 0 的设备)。

已返回:成功

示例: "10.0.0.1"

ansible_ec2_mac

字符串

实例的媒体访问控制 (MAC) 地址。

在存在多个网络接口的情况下,这指的是 eth0 设备(设备号为 0 的设备)。

已返回:成功

示例: "00:11:22:33:44:55"

ansible_ec2_metrics_vhostmd

字符串

指标;不再可用。

已返回:成功

示例: ""

ansible_ec2_network_interfaces_macs_mac_address_device_number

字符串

与该接口关联的唯一设备编号。设备编号对应于设备名称;例如,设备编号 2 用于 eth2 设备。

此类别对应于 Amazon EC2 API 和 AWS CLI 的 EC2 命令使用的 DeviceIndex 和 device-index 字段。

已返回:成功

示例: "0"

ansible_ec2_network_interfaces_macs_mac_address_interface_id

字符串

弹性网络接口 ID。

已返回:成功

示例: "eni-12345678"

ansible_ec2_network_interfaces_macs_mac_address_ipv4_associations_ip_address

字符串

与每个公有 IP 地址关联并分配给该接口的私有 IPv4 地址。

已返回:成功

示例: ""

ansible_ec2_network_interfaces_macs_mac_address_ipv6s

字符串

与接口关联的 IPv6 地址。仅针对启动到 VPC 的实例返回。

已返回:成功

示例: ""

ansible_ec2_network_interfaces_macs_mac_address_local_hostname

字符串

接口的本地主机名。

已返回:成功

示例: ""

ansible_ec2_network_interfaces_macs_mac_address_local_ipv4s

字符串

与接口关联的私有 IPv4 地址。

已返回:成功

示例: ""

ansible_ec2_network_interfaces_macs_mac_address_mac

字符串

实例的 MAC 地址。

已返回:成功

示例: "00:11:22:33:44:55"

ansible_ec2_network_interfaces_macs_mac_address_owner_id

字符串

网络接口所有者的 ID。

在多接口环境中,接口可以由第三方(例如弹性负载均衡)附加。

接口上的流量始终向接口所有者计费。

已返回:成功

示例: "123456789012"

ansible_ec2_network_interfaces_macs_mac_address_public_hostname

字符串

接口的公共 DNS(IPv4)。如果实例位于 VPC 中,则仅当 enableDnsHostnames 属性设置为 true 时才返回此类别。

已返回:成功

示例: "ec2-1-2-3-4.compute-1.amazonaws.com"

ansible_ec2_network_interfaces_macs_mac_address_public_ipv4s

字符串

与接口关联的弹性 IP 地址。实例上可能有多个 IPv4 地址。

已返回:成功

示例: "1.2.3.4"

ansible_ec2_network_interfaces_macs_mac_address_security_group_ids

字符串

网络接口所属的安全组的 ID。仅针对启动到 VPC 的实例返回。

已返回:成功

示例: "sg-01234567,sg-01234568"

ansible_ec2_network_interfaces_macs_mac_address_security_groups

字符串

网络接口所属的安全组。仅针对启动到 VPC 的实例返回。

已返回:成功

示例: "secgroup1,secgroup2"

ansible_ec2_network_interfaces_macs_mac_address_subnet_id

字符串

接口所在的子网的 ID。仅针对启动到 VPC 的实例返回。

已返回:成功

示例: "subnet-01234567"

ansible_ec2_network_interfaces_macs_mac_address_subnet_ipv4_cidr_block

字符串

接口所在的子网的 IPv4 CIDR 块。仅针对启动到 VPC 的实例返回。

已返回:成功

示例: "10.0.1.0/24"

ansible_ec2_network_interfaces_macs_mac_address_subnet_ipv6_cidr_blocks

字符串

接口所在的子网的 IPv6 CIDR 块。仅针对启动到 VPC 的实例返回。

已返回:成功

示例: ""

ansible_ec2_network_interfaces_macs_mac_address_vpc_id

字符串

接口所在的 VPC 的 ID。仅针对启动到 VPC 的实例返回。

已返回:成功

示例: "vpc-0123456"

ansible_ec2_network_interfaces_macs_mac_address_vpc_ipv4_cidr_block

字符串

接口所在的 VPC 的 IPv4 CIDR 块。仅针对启动到 VPC 的实例返回。

已返回:成功

示例: "10.0.0.0/16"

ansible_ec2_network_interfaces_macs_mac_address_vpc_ipv4_cidr_blocks

字符串

接口所在的 VPC 的 IPv4 CIDR 块。仅针对启动到 VPC 的实例返回。

已返回:成功

示例: "10.0.0.0/16"

ansible_ec2_network_interfaces_macs_mac_address_vpc_ipv6_cidr_blocks

字符串

接口所在的 VPC 的 IPv6 CIDR 块。仅针对启动到 VPC 的实例返回。

已返回:成功

示例: ""

ansible_ec2_placement_availability_zone

字符串

启动实例的可用区。

已返回:成功

示例: "us-east-1a"

ansible_ec2_placement_region

字符串

启动实例的区域。

已返回:成功

示例: "us-east-1"

ansible_ec2_product_codes

字符串

与实例关联的产品代码(如有)。

已返回:成功

示例: "aw0evgkw8e5c1q413zgy5pjce"

ansible_ec2_profile

字符串

EC2 实例硬件配置文件。

已返回:成功

示例: "default-hvm"

ansible_ec2_public_hostname

字符串

实例的公共 DNS。如果实例位于 VPC 中,则仅当 enableDnsHostnames 属性设置为 true 时才返回此类别。

已返回:成功

示例: "ec2-1-2-3-4.compute-1.amazonaws.com"

ansible_ec2_public_ipv4

字符串

公共 IPv4 地址。如果弹性 IP 地址与实例关联,则返回的值为弹性 IP 地址。

已返回:成功

示例: "1.2.3.4"

ansible_ec2_public_key

字符串

公钥。仅在实例启动时提供时可用。

已返回:成功

示例: ""

ansible_ec2_ramdisk_id

字符串

如果适用,则为启动时指定的 RAM 磁盘的 ID。

已返回:成功

示例: ""

ansible_ec2_reservation_id

字符串

预留的 ID。

已返回:成功

示例: "r-0123456789abcdef0"

ansible_ec2_security_groups

字符串

应用于实例的安全组的名称。启动后,您只能更改在 VPC 中运行的实例的安全组。

此类更改会在此处和 network/interfaces/macs/mac/security-groups 中反映。

已返回:成功

示例: "securitygroup1,securitygroup2"

ansible_ec2_services_domain

字符串

该区域AWS资源的域名;例如,us-east-1区域的域名是amazonaws.com。

已返回:成功

示例: "amazonaws.com"

ansible_ec2_services_partition

字符串

资源所在的区域。对于标准AWS区域,区域为aws。

如果您在其他区域拥有资源,则区域为aws-partitionname。

例如,中国(北京)区域的资源分区为aws-cn。

已返回:成功

示例: "aws"

ansible_ec2_spot_termination_time

字符串

您的Spot实例操作系统将接收关机信号的大致时间(UTC)。

只有当Spot实例已被Amazon EC2标记为终止时,此项才会存在并包含时间值。

如果您自己终止了Spot实例,则不会将termination-time项设置为时间。

已返回:成功

示例: "2015-01-05T18:02:00Z"

ansible_ec2_user_data

字符串

实例用户数据。

已返回:成功

示例: "#!/bin/bash"

作者

  • Silviu Dicu (@silviud)

  • Vinay Dandekar (@roadmapper)