【发布时间】:2019-12-28 14:38:41
【问题描述】:
我希望我的filedet.yaml 看起来像
10.9.75.78:/app/tmp/tmp.log、/vars/tmp/test.out 10.9.55.74:/app/tmp/tmp1.log、/vars/tmp/admin.out
以下工作正常并正确记录数据,但是当我添加“:”时,语法中断并出现错误
- name: Logging the deployment's file details to a Ansible variable file
local_action: lineinfile line={{ inventory_hostname }}': '{{ vars['fdetails_' + Layer].results|map(attribute='stdout')|list }} path={{ playbook_dir }}/vars/filedets.yaml
输出错误:
违规行似乎是: local_action: lineinfile line={{ inventory_hostname }}': '{{ > vars['fdetails_' + Layer].results|map(attribute='stdout')|list > }} path={{ playbook_dir }}/vars/文件集.yaml ^ 这里 我们可能是错的,但这个看起来可能是一个问题 缺少引号。总是引用模板表达式括号 开始一个值。例如:
我也试过这段代码,但它也因语法错误而失败:
line="{{ inventory_hostname }}': '{{ vars['fdetails_' + Layer].results|map(attribute='stdout')|list }}" path="{{ playbook_dir }}/vars/filedets.yaml"
您能否建议我如何在行中的变量之间注入冒号和空格':'?
【问题讨论】:
-
@VladimirBotka 我不认为这是重复的......正如 OP 所写......引用
"并没有解决问题。
标签: ansible command output string-formatting