首页 > 解决方案 > Ansible:模板化字符串时出现模板错误

问题描述

在运行以下任务时,它给了我以下错误。我也检查了换行符和其他语法错误,但找不到。是否有任何兼容性问题,或者我是否有任何愚蠢的语法问题?我在未安装 pip 的 VM 上运行此任务(并且没有安装权限)

   - name: Move old logs folder
     command: "mv {{ installed_dir }}/logs {{ installed_dir }}/logs_{{ old_version }}"  
     when: "groups['webservice'] | select('search','perfolab') | list"

错误信息:

fatal: [myserver.dm.com]: FAILED! => {"msg": "The conditional check 'groups['webservice'] | select('search','perfolab') | list' failed. The error was: template error while templating string: no filter named 'select'. String: {% if groups['webservice'] | select('search','perfolab') | list %} True {% else %} False {% endif %}\n\nThe error appears to have been in '/home/mylon/ansible-dep/webservice.yml': line 21, column 4, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n   - name: Move old logs folder\n     ^ here\n"}

Ansible 版本 - ansible 2.6.4 python 版本 = 2.6.6

标签: pythonansible

解决方案


您可能需要selectattr而不是选择

http://www.oznetnerd.com/jinja2-selectattr-filter/


推荐阅读