1
내가 set_fact가 하나의 호스트에 바인딩하고 사실 {{ hostvars['client1']['ansible_eth0']['ipv4']['address'] }}
에서 클라이언트의 IP를 얻을 수 있습니다 또한, 다른에서 사용할 수 없습니다 것을 알고 한 핸드북에 대해 정의 된 사실/변수를 다른 핸드북에서 어떻게 사용합니까?
- name: install nagios client
hosts: client1
roles:
- nagios-client
set_fact:
client_ip: "{{ ansible_default_ipv4.address }}"
client_hostname: "{{ ansible_hostname }}"
- name: register client
hosts: server
vars:
- ip: {{ client_ip }}
- hostname: {{ client_hostname }}
role:
- register-nagios-client
아래 같은 각본이 있다고 할 수 있습니다. 그러나 yml 파일의 여러 위치에서 참조 할 수있는 지역 변수를 정의하는 방법이 있습니까?
두 번째 플레이 북에 'client1'이름을 사용하는 자동화 된 방법이 있는지 알고 싶었습니다. 지역 변수 또는 무작위로 한 곳에서 정의 될 수 있고 여러 곳에서 참조되는 것과 같습니다. – pdna
예에서'client1'은 호스트 그룹 이름 (호스트 패턴)입니다. 그룹 이름과 일치하는 단일 호스트, 그룹 이름과 일치하지 않는 단일 호스트 또는 여러 호스트로 해석 될 수 있습니다. XY 문제를 해결하려고합니다. – techraf
내 경우에는 단일 호스트 (그룹이 아님) 만 일치합니다. – pdna