Ansible aws_ec2插件多个专用IP

Ansible aws_ec2插件多个专用IP,ansible,ansible-inventory,Ansible,Ansible Inventory,我有一台连接了3个eni(3个专用ip)的ec2机器,带有ssh访问安全组的eni不是主专用ip。我尝试了以下动态清单: plugin: aws_ec2 regions: - us-west-1 filters: tag:Name: test_ec2 groups: tag_testMachine_true: "true == true" hostnames: - network-interface.addresses.private-ip-address c

我有一台连接了3个eni(3个专用ip)的ec2机器,带有ssh访问安全组的eni不是主专用ip。我尝试了以下动态清单:

plugin: aws_ec2
regions:
  - us-west-1
filters:
  tag:Name: test_ec2
groups:
  tag_testMachine_true: "true == true"
hostnames:
  - network-interface.addresses.private-ip-address
compose:
  ansible_host: private-ip-address
这是ansible inventory命令的输出:

@all:
  |--@aws_ec2:
  |  |--['10.16.1.31', '10.16.2.15', '10.16.3.11']
使用此资源清册运行ansible时,出现以下错误:

fatal: [['10.16.1.31', '10.16.2.15', '10.16.3.11']]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname ['10.16.1.31', '10.16.2.15', '10.16.3.11']: Name does not resolve", "unreachable": true}

虽然我只需要第三个ip(10.16.3.11),但如果您相信为给定组返回主机的顺序=>
hosts:aws_ec2[2]
,是否有办法选择ec2的特定ip。如果组中的主机数量可能不同,但您确定它始终是最后一个=>
hosts:aws_ec2[-1]
谢谢!我试过了,但它不起作用,我想因为aws_ec2[0]是一个数组,我也试过使用aws_ec2[0][2]进行访问,但我想这是不允许的。我每天都使用它来定位数据库组的第一个或最后一个目标,所以我可以保证它能工作(至少从非aws清单…)。你的错误是什么?同时,您可能有更好的方法从配置文件中优化清单结果(例如,更改返回主机名的方式,选择比ip更有意义的内容…)我得到以下信息:错误!没有主机与下标模式“aws_ec2[2]”匹配,如果使用
aws_ec2
,会发生什么情况?