2017-12-16 8 views
-2

キー/値のペアとして表現されている次のYAMLリスト項目がある場合(私はそれが呼ばれていると思います)、値をどのように読み取るのですか?私はYAMLのドキュメントを見てきましたが、このような状況は議論されていませんでした。YAMLキー/値ペアリスト項目から値にアクセスするには?

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

YAMLはプログラミング言語ではないため、YAMLの値*を読み取ることはできません。あなたがテンプレート言語を使用しているようですが、どんな文脈でどの言語を教えてくれるわけではありません。 – flyx

+0

私はansibleとjinja2タグを追加しました。次回は他の人があなたの作業内容を理解するのに必要なだけ多くのコンテキストを追加してください。 YAMLは、自分自身の言葉であり、無力で使われるだけではありません。 – tinita

+0

すみません。これはAnsibleのプレイブックのセクションであり、ファイル内の上位の別の変数の値を1つのYAML変数に代入しようとしています。 – William

答えて

0

apache_vhostsは、マッピングのリストです:

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

は、私はこのような何かをしたいと、 "/ var/www/htmlと設定" にINSTALL_PATH設定します。このリストからキーservernameにアクセスしようとしていますが、リストにはキーがありません。 また、.servername[documentroot]で達成したいことがわかりません。

私の推測では、あなたが必要です: apache_vhosts[0].documentroot(apache_vhostsの最初の要素 - >キーのDocumentRoot)

Jinja2 Template Docsを見てください。 編集:あなたの場合にはおそらく良いでしょう:Ansible Templating

関連する問題