【发布时间】:2020-04-08 17:39:29
【问题描述】:
我有一个特定应用程序的变量块,其中包含子变量。其中一个是基本目录,我想在不同的其他子变量中重复使用,如下所示:
- hosts: all
vars:
app:
base_dir: /opt/app
data_dir: "{{ app.base_dir }}/data"
tasks:
- name: Test
shell: "echo data dir: {{ app.data_dir }}"
app.data_dir 应该是/opt/app/data,但不会强迫我为每个变量重复/opt/app。但它不起作用,相反我从 Ansible 得到了一个很长的异常:
任务 [测试] ****************************************************** ****************************************************** ****************************************************** ****************************** 2019 年 12 月 16 日星期一 11:13:55 +0100 (0:00:02.417)
0:00:02.439 *******致命:[192.168.122.91]:失败! => {“味精”:“一个 模板时发生未处理的异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:未处理 模板时发生异常 '{u'data_dir': u'{{ app.base_dir }}/data', u'base_dir': u'/opt/app'}'。错误是原始消息:递归循环 在模板字符串中检测到:{{ app.base_dir }}/data"}
看起来 Ansible 做了一些递归。如何引用app.base_dir?也试过{{ base_dir }}。这给了我一个它不存在的错误,所以我假设 Ansible 在全局范围内而不是在 app 中搜索它。
【问题讨论】: