amazon.aws.ec2_instance_info 模块 – 收集 AWS 中 ec2 实例的信息

注意

此模块是 amazon.aws 集合(版本 9.0.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了这个集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install amazon.aws。您需要进一步的要求才能使用此模块,请参阅要求以了解详细信息。

要在 playbook 中使用它,请指定:amazon.aws.ec2_instance_info

amazon.aws 1.0.0 中新增

概要

  • 收集有关 AWS 中 EC2 实例的信息。

要求

在执行此模块的主机上需要以下要求。

  • python >= 3.6

  • boto3 >= 1.28.0

  • botocore >= 1.31.0

参数

参数

注释

access_key

别名:aws_access_key_id, aws_access_key, ec2_access_key

字符串

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_IDAWS_ACCESS_KEYEC2_ACCESS_KEY 环境变量,优先级递减。

aws_access_keyprofile 选项是互斥的。

为了与 AWS botocore SDK 保持一致,在 5.1.0 版本中添加了 aws_access_key_id 别名。

ec2_access_key 别名已弃用,将在 2024-12-01 之后的版本中删除。

EC2_ACCESS_KEY 环境变量的支持已弃用,将在 2024-12-01 之后的版本中删除。

aws_ca_bundle

路径

用于验证 SSL 证书的 CA 捆绑包的位置。

也可以使用 AWS_CA_BUNDLE 环境变量。

aws_config

字典

用于修改 botocore 配置的字典。

可以在 AWS 文档中找到参数 https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config

debug_botocore_endpoint_logs

布尔值

使用 botocore.endpoint 记录器来解析任务期间进行的唯一(而不是总计)"resource:action" API 调用,将该集合输出到任务结果中的 resource_actions 键。使用 aws_resource_action 回调输出到 playbook 期间生成的总列表。

也可以使用 ANSIBLE_DEBUG_BOTOCORE_LOGS 环境变量。

选项

  • false ← (默认)

  • true

endpoint_url

别名:ec2_url, aws_endpoint_url, s3_url

字符串

连接到的 URL,而不是默认的 AWS 端点。虽然这可以用于连接到其他与 AWS 兼容的服务,但 amazon.aws 和 community.aws 集合仅针对 AWS 进行测试。

也可以使用 AWS_URLEC2_URL 环境变量,优先级递减。

ec2_urls3_url 别名已弃用,将在 2024-12-01 之后的版本中删除。

EC2_URL 环境变量的支持已弃用,将在 2024-12-01 之后的版本中删除。

filters

字典

要应用的过滤器字典。每个字典项都包含一个过滤器键和一个过滤器值。有关可能的过滤器,请参阅 https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html。过滤器名称和值区分大小写。

默认值: {}

include_attributes

别名:attributes

列表 / 元素=字符串

在 amazon.aws 6.3.0 中添加

描述返回的实例的指定属性。

选项

  • "instanceType"

  • "kernel"

  • "ramdisk"

  • "userData"

  • "disableApiTermination"

  • "instanceInitiatedShutdownBehavior"

  • "rootDeviceName"

  • "blockDeviceMapping"

  • "productCodes"

  • "sourceDestCheck"

  • "groupSet"

  • "ebsOptimized"

  • "sriovNetSupport"

  • "enclaveOptions"

  • "disableApiStop"

instance_ids

列表 / 元素=字符串

如果您指定一个或多个实例 ID,则仅返回具有指定 ID 的实例。

默认值: []

minimum_uptime

别名: uptime

整数

实例的最小运行时间(分钟)。例如,如果 uptime60,则返回所有运行时间超过 60 分钟的实例。

profile

别名: aws_profile

字符串

用于身份验证的命名 AWS 配置文件。

有关命名配置文件的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html

也可以使用 AWS_PROFILE 环境变量。

profile 选项与 aws_access_keyaws_secret_keysecurity_token 选项互斥。

region

别名: aws_region, ec2_region

字符串

要使用的 AWS 区域。

对于诸如 IAM、Route53 和 CloudFront 之类的全局服务,region 会被忽略。

也可以使用 AWS_REGIONEC2_REGION 环境变量。

有关更多信息,请参阅 Amazon AWS 文档 http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region

ec2_region 别名已弃用,将在 2024-12-01 之后的版本中删除。

EC2_REGION 环境变量的支持已弃用,将在 2024-12-01 之后的版本中删除。

secret_key

别名: aws_secret_access_key, aws_secret_key, ec2_secret_key

字符串

AWS 私有访问密钥。

有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

也可以使用 AWS_SECRET_ACCESS_KEYAWS_SECRET_KEYEC2_SECRET_KEY 环境变量,优先级递减。

secret_keyprofile 选项互斥。

aws_secret_access_key 别名在 5.1.0 版本中添加,以与 AWS botocore SDK 保持一致。

ec2_secret_key 别名已弃用,将在 2024-12-01 之后的版本中删除。

EC2_SECRET_KEY 环境变量的支持已弃用,将在 2024-12-01 之后的版本中删除。

session_token

别名: aws_session_token, security_token, aws_security_token, access_token

字符串

用于临时凭证的 AWS STS 会话令牌。

有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

也可以使用 AWS_SESSION_TOKENAWS_SECURITY_TOKENEC2_SECURITY_TOKEN 环境变量,优先级递减。

security_tokenprofile 选项互斥。

别名 aws_session_tokensession_token 在 3.2.0 版本中添加,参数在 6.0.0 版本中从 security_token 重命名为 session_token

security_tokenaws_security_tokenaccess_token 别名已弃用,将在 2024-12-01 之后的版本中删除。

EC2_SECRET_KEYAWS_SECURITY_TOKEN 环境变量的支持已弃用,将在 2024-12-01 之后的版本中删除。

validate_certs

布尔值

设置为 false 时,与 AWS API 通信时不验证 SSL 证书。

强烈建议不要设置 validate_certs=false,作为替代方案,请考虑设置 aws_ca_bundle

选项

  • false

  • true ← (默认)

注释

注意

  • 注意: 对于模块,环境变量和配置文件是从 Ansible “主机” 上下文而不是“控制器”上下文中读取的。因此,可能需要将文件显式复制到“主机”。对于查找和连接插件,环境变量和配置文件是从 Ansible “控制器” 上下文而不是“主机”上下文中读取的。

  • Ansible 使用的 AWS SDK (boto3) 也可能会从其在 Ansible “主机” 上下文中的配置文件(通常是 ~/.aws/credentials)读取凭据和其他设置的默认值,例如区域。有关更多信息,请参阅 https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html

示例

# Note: These examples do not set authentication details, see the AWS Guide for details.

- name: Gather information about all instances
  amazon.aws.ec2_instance_info:

- name: Gather information about all instances in AZ ap-southeast-2a
  amazon.aws.ec2_instance_info:
    filters:
      availability-zone: ap-southeast-2a

- name: Gather information about a particular instance using ID
  amazon.aws.ec2_instance_info:
    instance_ids:
      - i-12345678

- name: Gather information about any instance with a tag key Name and value Example
  amazon.aws.ec2_instance_info:
    filters:
      "tag:Name": Example

- name: Gather information about any instance in states "shutting-down", "stopping", "stopped"
  amazon.aws.ec2_instance_info:
    filters:
      instance-state-name: ["shutting-down", "stopping", "stopped"]

- name: Gather information about any instance with Name beginning with RHEL and an uptime of at least 60 minutes
  amazon.aws.ec2_instance_info:
    region: "{{ ec2_region }}"
    uptime: 60
    filters:
      "tag:Name": "RHEL-*"
      instance-state-name: ["running"]
  register: ec2_node_info

- name: Gather information about a particular instance using ID and include kernel attribute
  amazon.aws.ec2_instance_info:
    instance_ids:
      - i-12345678
    include_attributes:
      - kernel

返回值

常见的返回值记录在这里,以下是此模块特有的字段

描述

instances

复杂

ec2 实例列表。

返回: 总是

ami_launch_index

整数

AMI 启动索引,可用于在启动组中查找此实例。

返回: 总是

示例: 0

architecture

字符串

镜像的架构。

返回: 总是

示例: "x86_64"

attributes

字典

在 amazon.aws 6.3.0 中添加

输入中指定的实例属性的详细信息。

返回: 当指定了 include_attributes

示例: {"disable_api_termination": {"value": true}, "ebs_optimized": {"value": true}}

block_device_mappings

复杂

实例的任何块设备映射条目。

返回: 总是

device_name

字符串

暴露给实例的设备名称(例如,/dev/sdh 或 xvdh)。

返回: 总是

示例: "/dev/sdh"

ebs

复杂

用于在启动实例时自动设置 EBS 卷的参数。

返回: 总是

attach_time

字符串

启动附加时的时间戳。

返回: 总是

示例: "2017-03-23T22:51:24+00:00"

delete_on_termination

布尔值

指示是否在实例终止时删除卷。

返回: 总是

示例: true

status

字符串

附加状态。

返回: 总是

示例: "attached"

volume_id

字符串

EBS 卷的 ID。

返回: 总是

示例: "vol-12345678"

capacity_reservation_specification

复杂

有关容量预留目标选项的信息。

返回: 成功

capacity_reservation_preference

字符串

描述容量预留首选项。

返回: 成功

示例: "open"

client_token

字符串

您在启动实例时提供的幂等令牌(如果适用)。

返回: 总是

示例: "mytoken"

cpu_options

复杂

为实例设置的 CPU 选项。

返回: 总是

core_count

整数

实例的 CPU 内核数。

返回: 总是

示例: 1

threads_per_core

整数

每个 CPU 内核的线程数。在支持的实例上,值为 1 表示禁用 Intel 超线程技术。

返回: 总是

示例: 1

current_instance_boot_mode

字符串

用于在启动或启动时引导实例的启动模式。

返回: 成功

示例: "legacy-bios"

ebs_optimized

布尔值

指示实例是否针对 EBS I/O 进行了优化。

返回: 总是

示例: false

ena_support

布尔值

指定是否启用 ENA 的增强联网。

返回: 总是

示例: true

enclave_options

字典

指示实例是否已启用 Amazon Web Services Nitro Enclaves。

返回: 成功

enabled

布尔值

如果此参数设置为 true,则该实例已启用 Amazon Web Services Nitro Enclaves。

返回: 总是

示例: false

hibernation_options

字典

指示实例是否已启用休眠。

返回: 成功

configured

布尔值

如果为 true,则您的实例已启用休眠;否则,未启用休眠。

返回: 总是

示例: false

hypervisor

字符串

实例的虚拟机管理程序类型。

返回: 总是

示例: "xen"

iam_instance_profile

复杂

与实例关联的 IAM 实例配置文件(如果适用)。

返回: 成功

arn

字符串

实例配置文件的 Amazon 资源名称 (ARN)。

返回: 总是

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

id

字符串

实例配置文件的 ID。

返回: 总是

示例: "JFJ397FDG400FG9FD1N"

image_id

字符串

用于启动实例的 AMI 的 ID。

返回: 总是

示例: "ami-0011223344"

instance_id

字符串

实例的 ID。

返回: 总是

示例: "i-012345678"

instance_type

字符串

正在运行的实例的实例类型大小。

返回: 总是

示例: "t2.micro"

key_name

字符串

密钥对的名称,如果此实例在启动时关联了密钥对。

返回: 总是

示例: "my-key"

launch_time

字符串

实例启动的时间。

返回: 总是

示例: "2017-03-23T22:51:24+00:00"

maintenance_options

字典

提供有关实例的恢复和维护选项的信息。

返回: 总是

auto_recovery

字符串

提供有关实例当前自动恢复行为的信息。

返回: 成功

示例: "default"

metadata_options

复杂

实例的元数据选项。

返回: 总是

http_endpoint

字符串

指示实例上的 HTTP 元数据端点是启用还是禁用。

返回: 成功

示例: "enabled"

http_protocol_ipv6

字符串

指示实例元数据服务的 IPv6 端点是启用还是禁用。

返回: 成功

示例: "disabled"

http_put_response_hop_limit

整数

元数据令牌可以传输的最大跃点数。

返回: 成功

示例: 1

http_tokens

字符串

指示是否需要 IMDSv2。

返回: 成功

示例: "optional"

instance_metadata_tags

字符串

指示是否启用从实例元数据访问实例标签。

返回: 成功

示例: "disabled"

state

字符串

元数据选项更改的状态。

返回: 成功

示例: "applied"

monitoring

复杂

实例的监控。

返回: 总是

state

字符串

指示是否启用详细监控。否则,启用基本监控。

返回: 总是

示例: "disabled"

network_interfaces

复杂

实例的一个或多个网络接口。

返回: 总是

association

复杂

与网络接口关联的弹性 IPv4 的关联信息。

返回: 总是

ip_owner_id

字符串

弹性 IP 地址的所有者的 ID。

返回: 总是

示例: "amazon"

public_dns_name

字符串

公共 DNS 名称。

返回: 总是

示例: ""

public_ip

字符串

绑定到网络接口的公共 IP 地址或弹性 IP 地址。

返回: 总是

示例: "1.2.3.4"

attachment

复杂

网络接口附件。

返回: 总是

attach_time

字符串

启动附加时的时间戳。

返回: 总是

示例: "2017-03-23T22:51:24+00:00"

attachment_id

字符串

网络接口附件的 ID。

返回: 总是

示例: "eni-attach-3aff3f"

delete_on_termination

布尔值

指示在实例终止时是否删除网络接口。

返回: 总是

示例: true

device_index

整数

实例上网络接口附件的设备的索引。

返回: 总是

示例: 0

network_card_index

整数

网卡的索引。

返回: 总是

示例: 0

status

字符串

附加状态。

返回: 总是

示例: "attached"

description

字符串

描述。

返回: 总是

示例: "我的 接口"

groups

列表 / 元素=字典

一个或多个安全组。

返回: 总是

group_id

字符串

安全组的 ID。

返回: 总是

示例: "sg-abcdef12"

group_name

字符串

安全组的名称。

返回: 总是

示例: "mygroup"

interface_type

字符串

网络接口的类型。

返回: 总是

示例: "interface"

ipv6_addresses

列表 / 元素=字典

与网络接口关联的一个或多个 IPv6 地址。

返回: 总是

ipv6_address

字符串

IPv6 地址。

返回: 总是

示例: "2001:0db8:85a3:0000:0000:8a2e:0370:7334"

mac_address

字符串

MAC 地址。

返回: 总是

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

network_interface_id

字符串

网络接口的 ID。

返回: 总是

示例: "eni-01234567"

owner_id

字符串

网络接口所有者的 AWS 账户 ID。

返回: 总是

示例: "01234567890"

private_dns_name

字符串

分配给实例的私有 DNS 主机名。

返回: 总是

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

private_ip_address

字符串

子网内网络接口的 IPv4 地址。

返回: 总是

示例: "10.0.0.1"

private_ip_addresses

列表 / 元素=字典

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

返回: 总是

association

复杂

与网络接口关联的弹性 IP 地址 (IPv4) 的关联信息。

返回: 成功

ip_owner_id

字符串

弹性 IP 地址的所有者的 ID。

返回: 总是

示例: "amazon"

public_dns_name

字符串

公共 DNS 名称。

返回: 总是

示例: ""

public_ip

字符串

绑定到网络接口的公共 IP 地址或弹性 IP 地址。

返回: 总是

示例: "1.2.3.4"

primary

布尔值

指示此 IPv4 地址是否为网络接口的主要私有 IP 地址。

返回: 总是

示例: true

private_dns_name

字符串

分配给实例的私有 DNS 主机名。

返回: 总是

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

private_ip_address

字符串

网络接口的私有 IPv4 地址。

返回: 总是

示例: "10.0.0.1"

source_dest_check

布尔值

指示是否启用了源/目标检查。

返回: 总是

示例: true

status

字符串

网络接口的状态。

返回: 总是

示例: "in-use"

subnet_id

字符串

网络接口的子网 ID。

返回: 总是

示例: "subnet-0123456"

vpc_id

字符串

网络接口的 VPC ID。

返回: 总是

示例: "vpc-0123456"

placement

复杂

如果适用,实例启动的位置。

返回: 总是

availability_zone

字符串

实例的可用区。

返回: 总是

示例: "ap-southeast-2a"

group_name

字符串

实例所在的置放群组的名称(用于集群计算实例)。

返回: 总是

示例: ""

tenancy

字符串

实例的租赁(如果实例在 VPC 中运行)。

返回: 总是

示例: "default"

platform_details

字符串

实例的平台详细信息值。

返回: 总是

示例: "Linux/UNIX"

private_dns_name

字符串

私有 DNS 名称。

返回: 总是

示例: "ip-10-0-0-1.ap-southeast-2.compute.internal"

private_dns_name_options

字典

实例主机名的选项。

返回: 成功

enable_resource_name_dns_a_record

布尔值

指示是否使用 DNS A 记录响应实例主机名的 DNS 查询。

返回: 成功

示例: false

enable_resource_name_dns_aaaa_record

布尔值

指示是否使用 DNS AAAA 记录响应实例主机名的 DNS 查询。

返回: 成功

示例: false

hostname_type

字符串

要分配给实例的主机名类型。

返回: 成功

示例: "ip-name"

private_ip_address

字符串

子网内网络接口的 IPv4 地址。

返回: 总是

示例: "10.0.0.1"

product_codes

列表 / 元素=字典

一个或多个产品代码。

返回: 总是

product_code_id

字符串

产品代码。

返回: 总是

示例: "aw0evgkw8ef3n2498gndfgasdfsd5cce"

product_code_type

字符串

产品代码的类型。

返回: 总是

示例: "marketplace"

public_dns_name

字符串

分配给实例的公共 DNS 名称。

返回: 总是

public_ip_address

字符串

分配给实例的公共 IPv4 地址。

返回: 总是

示例: "52.0.0.1"

root_device_name

字符串

根设备的设备名称。

返回: 总是

示例: "/dev/sda1"

root_device_type

字符串

AMI 使用的根设备类型。

返回: 总是

示例: "ebs"

security_groups

列表 / 元素=字典

实例的一个或多个安全组。

返回: 总是

group_id

字符串

安全组的 ID。

返回: 总是

示例: "sg-0123456"

group_name

字符串

安全组的名称。

返回: 总是

示例: "my-security-group"

source_dest_check

布尔值

指示是否启用了源/目标检查。

返回: 总是

示例: true

state

复杂

实例的当前状态。

返回: 总是

code

整数

低字节表示状态。

返回: 总是

示例: 16

name

字符串

状态的名称。

返回: 总是

示例: "running"

state_transition_reason

字符串

最近一次状态转换的原因。

返回: 总是

subnet_id

字符串

实例正在运行的子网的 ID。

返回: 总是

示例: "subnet-00abcdef"

tags

字典

分配给实例的任何标签。

返回: 总是

virtualization_type

字符串

AMI 的虚拟化类型。

返回: 总是

示例: "hvm"

vpc_id

字典

实例所在的 VPC 的 ID。

返回: 总是

示例: "vpc-0011223344"

作者

  • Michael Schuett (@michaeljs1990)

  • Rob White (@wimnat)