2017-11-27 11 views
0

템플릿의 클러스터 변수를 채우기 위해 호스트 그룹 아래에 모든 노드를 가져 오려고합니다. 내 ansible 호스트 10.0.0.1 내 작전을 시작할 때 나는 (이 내가 원하는 것입니다)이 그룹의 그룹 [ 'des_cns'] 모든 노드로 얻을 수 있습니다,이리프 호스트 그룹의 노드 가져 오기

[des_cns] 
10.0.0.1 
10.0.0.2 

[des_rtc] 
10.0.0.11 
10.0.0.12 

[des_ogl] 
10.0.0.21 
10.0.0.22 

[des:children] 
des_cns 
des_rtc 
des_ogl 

[clustered:children] 
des 

같은 것입니다하지만 난 것 같아 변수로는 그렇게 할 수 없습니다. Whith group_names이 IP가 일치하는 모든 그룹을 얻지 만 리프 그룹 만 필요합니다. 필터링 목적으로 모든 리프 그룹에서 _을 사용했습니다.

가까이 내가 (이 줄을 너무 많이 쌓여 있는지 메신저 메신저)입니다 얻을 수 있습니다 :

{{groups[group_names|list|join(' ')|regex_findall('[a-z]*_[a_z]*')|to_json]}} 

을하지만 그건 오류라고 DICT 개체를 반환은 더 속성 '[\ "des_cns \"]'가 없습니다. ..

귀하의 도움에 감사 드리며 저의 영어 실력을 유감스럽게 생각합니다.

답변

1

사용 select 필터와 search 시험 :

{{ groups[ group_names | select('search','_') | first ] }} 

내부 표현은 : group_names에서 _ 문자 만 그룹을 선택하고 그것의 단지 첫 번째 항목을.