【发布时间】:2018-05-30 05:54:39
【问题描述】:
如果我有以下表示为键/值对的 YAML 列表项(我认为这就是它的名称),我该如何读取该值?我一直在查看 YAML 文档,但没有看到讨论过这种情况。
---
apache_vhosts:
- servername: localhost
documentroot: "/var/www/html"
我想做这样的事情并将 install_path 设置为“/var/www/html”:
...
# This doesn't work
install_path: "{{ apache_vhosts.servername[documentroot] }}"
【问题讨论】:
-
您不会在 YAML 中读取值,因为 YAML 不是一种编程语言。您似乎在使用模板语言,但没有告诉我们是哪一种或在什么上下文中。
-
我添加了 ansible 和 jinja2 标签。下次请添加尽可能多的上下文,以便其他人了解您正在使用的内容。 YAML 是一种自己的语言,不仅在 ansible 中使用。
-
对不起。这是 Ansible 剧本的一部分,我正在尝试将一个 YAML 变量分配给文件中较高位置的另一个变量的值。
-
我的回答对你有用吗?
-
tinita 的答案就是解决方案。当你说它不起作用时,你是什么意思?由于
apache_vhosts是一个列表,您是否通过list_items循环对其进行迭代?你能添加你使用所有这些变量的 Ansible 代码吗(这样我们就可以知道你想要实现什么)?