GMi*_*ael 0 yaml jinja2 ansible
我将Ansible 2.3.2.0用于我的项目。在这个项目中,我有一个使用is_file测试的任务:
- name: Create repository.ini file
template: src="{{ playbook_dir }}/../../../repository.ini" dest="/{{ repository_dir }}/repository.ini"
when: "{{ playbook_dir }}/../../..//repository.ini"|is_file
Run Code Online (Sandbox Code Playgroud)
此任务产生以下错误:
The offending line appears to be:
template: src="{{ playbook_dir }}/../../../repository.ini" dest="/{{ jse_repository_dir }}/repository.ini"
when: "{{ playbook_dir }}/../../../repository.ini"|is_file
^ here
We could be wrong, but this one looks like it might be an issue with
missing quotes. Always quote template expression brackets when they
start a value. For instance:
. . . .
Run Code Online (Sandbox Code Playgroud)
我竭尽所能。
当用引号将YAML键值开头时,必须对整个值进行引号,因此,如果内部还有其他字符串,则应使用其他引号(例如,单引号+双引号)。
Ansible期望值的值为whenJinja2语句,因此无需在{{内部使用。
因为2.您需要使用Jinja2语法进行字符串连接variable + 'string'。
综合考虑,您的条件应为:
when: "(playbook_dir+'/../../../repository.ini')|is_file"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
457 次 |
| 最近记录: |