繁体   English   中英

Ansible 剧本获取我的 AWS 环境的所有私有 Ip

[英]Ansible playbook to get all private Ip of my AWS environments

我正在使用 Ansible pLaybook 对我的 AWS 上的所有实例运行扫描。 我需要得到他们的 Private IP 并列出他们

我尝试使用 json 查询来过滤 Json 格式。 格式 output 如下所示......

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, 

        }, 
- hosts: localhost
  connection: local
  gather_facts: yes
  tasks:
    - name: Gather EC2 remote facts.
      ec2_remote_facts:
        region: "{{ region | default('us-east-1') }}"
        filters:
          instance-state-name: running
      register: ec2_remote_facts
    -  set_fact:
         msg: "{{ ec2_remote_facts | json_query('results[*].instances[*].private_ip_address') }} "
    - debug: var=msg

我希望 output 只是 private_IP 的列表

我尝试使用“ ec2_instance_facts”,如下所示:

- 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实例,这是正确的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM