【发布时间】:2019-09-26 23:23:03
【问题描述】:
我无法运行 Ansible playbook 中的内联 elif jinja 语句。我玩过如下图
vm_number 是动态生成的,有一个 vars 文件,其中包含每个 vm 的值(例如:“PARAMS_vm_1”)。
PARAMS_vm_1:
- 知识产权
- 名称
- fqdn
- 操作系统
- 位置
状况:
= 5 将值附加到列表
其他任何东西只需将PARAMS_vm_1 的值设置为get_vmdata
- name: set vm name
set_fact:
vmname: "vm_{{ vm_number }}"
- name: set PARAMS_vmname
set_fact:
PARAMS_vmname: "PARAMS_{{ vmname }}"
- name: get get_vmdata
set_fact:
get_vmdata: "{{ error if ((lookup('vars', PARAMS_vmname)) | length < 5) elif ((lookup('vars', PARAMS_vmname)) | length = 5) (lookup('vars', PARAMS_vmname)) + none else (lookup('vars', SUBTOPO_PARAMS_simname)) }}"
如果我只使用 if else 语句 - 它工作正常。
如果我包含 elif 条件,则会显示以下错误 -"msg": "template error while templating string: expected token 'end of print statement', got 'elif'.
【问题讨论】: