관리 측에서 가능한 사실을 어떻게 포함할 수 있나요?

관리 측에서 가능한 사실을 어떻게 포함할 수 있나요?

(ansible을 처음 접함) 나는 달리고 있다ansible all -m setup 인벤토리 시스템에 대한 JSON 출력을 생성하기 위해 소수의 호스트에서 실행 중입니다. Ansible 원격 중 일부는 다른 서브넷(예: DMZ)에 있습니다. 나는 다음을 포함하고 싶습니다.랜 IPAnsible JSON 출력에서 ​​이러한 호스트와 연결됩니다. 어떻게 해야 하나요?

192.168.1.1업데이트: 명확히 하기 위해 IP 주소가 어떻게든 사실 출력에 포함되기를 바랍니다 . 필드 ansible_all_ipv4_addressesansible_default_ipv4출력에는 10.10.10.1LAN 관점에서 인벤토리를 보는 사람들에게 도움이 되지 않는 IP 주소가 포함되어 있습니다.

192.168.1.0/24       192.168.1.0/24
    LAN ----------------FIREWALL
                         |     |
                         eth0  eth1
                         |     |
                         |     +-------DMZ1---------+
                         |                         |
       host1.org.net   > + eth0:1=192.168.1.1      + 10.10.10.1  > host1.org.net
                         |                         |
       host2.org.net   > + eth0:2=192.168.1.2      + 10.10.10.2  > host2.org.net

답변1

/etc/ansible/facts.d/whatever.fact한 가지 해결책은 플레이북을 실행하여 변수를 사용할 때 파일을 채우는 것 같습니다 "{{inventory_hostname}}". 실행 되면 setup다음이 포함됩니다.whatever.fact JSON 출력에 . 다른 사람에게 도움이 될 경우를 대비해 여기에 있습니다. 플레이북을 사용하여 Inventory_hostname을 원격 파일에 어떻게 기록할 수 있습니까?

관련 정보