두 그룹에 속한 호스트의 IP 주소를 추출하여 .xml 구성 파일에서 사용하려고 합니다.
여기서 직면한 문제는 jinja 템플릿에 사용된 표현식에 의해 생성된 출력입니다. 내가 달성하고 싶은 것은 다음과 같은 출력이지만 10.3.5.1,10.3.5.2,10.3.5.2
대신에 [u'10.3.5.1],[u'10.3.5.2],[u'10.3.5.2]
.
이것은 jinja 템플릿에 사용되는 표현식입니다.
<member1>{{ (groups['group_one']+groups['group_two']) | map('extract',hostvars,'ansible_ip_addresses') | list | unique | join(',') }}</member1>
다른 필터도 시도해 보았지만 예상한 결과를 얻을 수 없었습니다.
이를 위해 어떤 필터를 사용해야 합니까? (적절한 것을 찾을 수 없었습니다)
답변1
ansible_ip_addresses
은 목록이므로 중첩된 목록(IP 주소 포함)이 있는 목록(호스트 목록)이 있습니다.
적용하기 전에 평평하게 만들고 싶을 수도 있습니다 unique
.join
{{ (groups['group_one']+groups['group_two']) | map('extract',hostvars,'ansible_ip_addresses') | list | sum(start=[]) | unique | join(',') }}
이렇게 하면 고유한 항목을 가져와서 쉼표로 결합하는 것보다 단일 IP 주소를 요소로 포함하는 단순 목록이 만들어집니다.