【发布时间】:2021-07-20 19:13:48
【问题描述】:
这个
- name: ugly
hosts: localhost
vars:
badstr: "asdf{%jkl"
mydir: "."
mydict:
filea:
Value: "blue!42!"
fileb:
Value: "a{%isbad"
tasks:
- copy:
dest: "{{ item.key }}"
content: "{{ item.value.Value }}"
loop: "{{ mydict|default({})|dict2items }}"
给我这个错误:
fatal: [localhost]: FAILED! => {"msg": "An unhandled exception occurred while templating 'asdf{%jkl'. Error was a <class 'ansible.errors.AnsibleError'>, original message: template error while templating string: Encountered unknown tag 'jkl'.. String: asdf{%jkl"}
“mydict”结构是从插件返回的,我无法定义成员。其中一个“值”包含“{%”。对它的任何引用都会导致错误,无论是作为变量、文件内容还是在模板中。
我尝试了各种不安全、{{、%raw 等的引用和组合。它要么给我错误,要么将变量的名称放在文件中。
如何将值写入文件?还是仅仅将其用作变量?
MacOS 11.3 上的 Ansible 2.8.4,RHEL 7 上的 ansible 2.9。
【问题讨论】:
-
请编辑您的问题并添加带有问题条目的数据结构示例
-
已更新,谢谢。
-
您能否提供有关如何设置这些值的更多详细信息?你说“从插件返回”;你是说 Ansible 模块吗?
-
我不想讨论这个问题,因为实际的代码很混乱。但它类似于:
{{ lookup('aws_ssm', '/PATH/to/params', bypath=true) }}",它返回一个包含值的字典。