2017-10-20 8 views
-1

저는 최근 Anoys을 사용하여 일부 작업을 자동화하고 싶기 때문에 python/YAML 및 JINJA (소프트웨어 경험 없음)로 게임을 시작했습니다.목록 목록에있는 요소에 액세스하기

YAML 표현은 이것입니다. 이해할 수있는 것처럼, 내부에 값이있는 다른 2 개의 목록을 포함하는 목록이 있습니다.

YAML 파일에 대한 이해는 바로이 다음 나타내는 경우

VARIABLE_NAME: 
    - LIST_1.1: 
    - VALUE1 
    - VALUE2 

    - LIST_1.2: 
    - VALUE3 
    - VALUE4 

다음 신사 템플릿에

VARIABLE_NAME=[LIST1.1[VALUE1, VALUE2],LIST1.2[VALUE3, VALUE4]] 

, 나는 LIST에게 사용하는 1 개 값을 가져 루프에 원하는 두 번째 명령문의 첫 번째 명령문과 list2 값. 이런 식으로 뭔가 :

신사의 템플릿 :

{%for values in List1.List_1.1%} 
Statement1 {values} 
{% endfor%} 

{%for values in List1.List_1.2%} 
Statement2 {values} 
{% endfor%} 

이것이 신사 템플릿에 올바른 구문은 YAML의 값에 액세스하는 것? 또한이 작업을 수행하는 더 좋은 방법이 있습니까? 도움 주셔서 감사합니다.

답변

0

당신은 템플릿이 하나를 시도 할 수

{%for values in LIST1['LIST_1.1']%} 
Statement1 {{values}} 
{% endfor%} 

{%for values in LIST1['LIST_1.2']%} 
Statement2 {{values}} 
{% endfor%} 

당신이 결과를 줄 것이다 :

Statement1 VALUE1 
Statement1 VALUE2 

Statement2 VALUE3 
Statement2 VALUE4 

희망이 당신을 도울 수 있습니다.

+0

안녕하세요, Arbab, 답변 해 주셔서 감사합니다. 내 질문을 편집했는데 실제 문제가 반영되지 않았기 때문입니다. 귀하의 솔루션이 이전 케이스에 대해 작동했음을 확인했으나,이 케이스에서 여전히 중첩리스트의 값에 액세스 할 수 없습니다. 신사 템플릿에서 나는 다음과 같은 노력하고있어 :
'{VARIABLE_NAME에 IP에 대한 %를 [범위] [IP] %}'
'문장 1 {{IP}}'
'{% ENDFOR %}'
하지만 여전히 Anabilities에서 다음과 같은 오류가 발생합니다 :''AnsibleUndefinedVariable : 목록 객체에 요소가 없습니다. –