Amazon ec2 Ansible playbook可获取AWS环境的所有私有Ip
我正在使用Ansible pLaybook对AWS上的所有实例进行扫描。我需要获得他们的私有IP并列出他们 我尝试使用json查询来过滤json格式。格式输出如下所示Amazon ec2 Ansible playbook可获取AWS环境的所有私有Ip,amazon-ec2,ansible,Amazon Ec2,Ansible,我正在使用Ansible pLaybook对AWS上的所有实例进行扫描。我需要获得他们的私有IP并列出他们 我尝试使用json查询来过滤json格式。格式输出如下所示 ok: [localhost] => { "msg": [ { "private_dns_name": "ip-10.89.3.12.ec2.internal", "private_ip_address": "10.89.3.12",
ok: [localhost] => {
"msg": [
{
"private_dns_name": "ip-10.89.3.12.ec2.internal",
"private_ip_address": "10.89.3.12",
"public_dns_name": "",
"public_ip_address": null,
},
我希望输出仅为私有IP列表我尝试使用“ec2\u实例\u事实”,如下所示:
- hosts: localhost
connection: local
gather_facts: yes
tasks:
- name: Gather EC2 remote facts.
ec2_instance_facts:
filters:
availability-zone: ap-south-1b
register: ec2_instance_facts
- set_fact:
msg: "{{ ec2_instance_facts | json_query('instances[*].private_ip_address') }} "
- debug: var=msg
以下是输出:
PLAY [localhost] **************************************************************************************************************************************************************************************************
TASK [Gathering Facts] ********************************************************************************************************************************************************************************************
ok: [localhost]
TASK [Gather EC2 remote facts.] ***********************************************************************************************************************************************************************************
ok: [localhost]
TASK [set_fact] ***************************************************************************************************************************************************************************************************
ok: [localhost]
TASK [debug] ******************************************************************************************************************************************************************************************************
ok: [localhost] => {
"msg": [
"172.31.6.87"
]
}
PLAY RECAP ********************************************************************************************************************************************************************************************************
localhost : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
根据我创建的EC2实例,这是正确的。您是否只需要使用“EC2\u remote\u facts”来收集有关EC2的数据?我这样问是因为这个任务现在已经不推荐了。您可以改用“ec2\u实例\u事实”
PLAY [localhost] **************************************************************************************************************************************************************************************************
TASK [Gathering Facts] ********************************************************************************************************************************************************************************************
ok: [localhost]
TASK [Gather EC2 remote facts.] ***********************************************************************************************************************************************************************************
ok: [localhost]
TASK [set_fact] ***************************************************************************************************************************************************************************************************
ok: [localhost]
TASK [debug] ******************************************************************************************************************************************************************************************************
ok: [localhost] => {
"msg": [
"172.31.6.87"
]
}
PLAY RECAP ********************************************************************************************************************************************************************************************************
localhost : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0