2017-12-16 9 views
-2

키/값 쌍으로 표현되는 다음 YAML 목록 항목이 있다고 가정합니다 (값이 어떻게 읽습니까?). 나는 YAML 문서를보고 있었고이 상황을 논의하지 않았다.YAML 키/값 쌍 목록 항목에서 값에 액세스하는 방법?

... 
# This doesn't work 
install_path: "{{ apache_vhosts.servername[documentroot] }}" 
+2

YAML은 프로그래밍 언어가 아니기 때문에 YAML에서 값 *을 읽지 않습니다. 템플릿 언어를 사용하고 있지만 어떤 문맥을 사용하고 있는지 알려주지는 않습니다. – flyx

+0

나는 가능한 jinja2 태그를 추가했다. 다른 사람들이 당신이하고있는 일을 이해할 수 있도록 다음 번에 필요한만큼의 상황을 추가하십시오. YAML은 무언가에 사용되는 것뿐만 아니라 자체 언어입니다. – tinita

+0

죄송합니다. 이것은 Aniable playbook의 한 섹션이며 하나의 YAML 변수에 파일의 상위 변수의 값을 할당하려고합니다. – William

답변

0

apache_vhosts이 매핑의 목록입니다

--- 
apache_vhosts: 
    - servername: localhost 
    documentroot: "/var/www/html" 

나는 같은 것을 할 싶어 "은/var/www /에서 HTML"로 INSTALL_PATH 설정합니다. 이 목록에서 servername 키에 액세스하려하지만 목록에는 키가 없습니다. .servername[documentroot]으로 달성하고자하는 내용을 알지 못합니다.

Jinja2 Template Docs에서 참조하시기 바랍니다 - 가 apache_vhosts[0].documentroot (> 키의 DocumentRoot apache_vhosts의 첫 번째 요소) :

내 생각 엔 당신이 필요합니다. 편집 : 아마도 당신의 경우에 더 좋을 것입니다 : Ansible Templating