如何解决Ansible错误并显示消息“模板字符串时模板错误:没有名为'oo_prepend_strings_in_list'的过滤器

时间:2019-04-30 12:34:28

标签: ansible

我在Jenkins实例驱动下遇到Ansible问题。

错误消息:

  

失败! => {“ msg”:“模板字符串时发生模板错误:没有名为'oo_prepend_strings_in_list'的过滤器。字符串:{{item.reg_conf_var}} ='{{item.reg_fact_val | oo_prepend_strings_in_list(item.reg_flag〜'')| join( '')}}'“}       重试,使用:--limit   

代码块:

- name: Set registry params
  lineinfile:
    dest: /etc/sysconfig/docker
    regexp: '^{{ item.reg_conf_var }}=.*$'
    line: "{{ item.reg_conf_var }}='{{ item.reg_fact_val | oo_prepend_strings_in_list(item.reg_flag ~ ' ') | join(' ') }}'"
    register: set_docker
    when: item.reg_fact_val != '' and docker_check.stat.isreg is defined and docker_check.stat.isreg
    with_items:
   - reg_conf_var: ADD_REGISTRY
     reg_fact_val: "{{ docker_additional_registries | default(None, true)}}"
     reg_flag: --add-registry
   - reg_conf_var: BLOCK_REGISTRY
     reg_fact_val: "{{ docker_blocked_registries| default(None, true) }}"
     reg_flag: --block-registry

值示例:

docker_additional_registries=["registry.example.com:5000","registry.access.redhat.com"]
docker_blocked_registries=

1 个答案:

答案 0 :(得分:0)

select qssource from (select concat(COLA,'',COLB)qssource from TABLE)aa group by qssource having count(*)=1 不是由ansible提供的过滤器。

如果以上任务在本地计算机上正确运行,则说明您已将此过滤器添加到安装中,可以直接在ansible安装中(不推荐),也可以与剧本处于同一级别,或者以{{ 1}}目录(example in a role

在这种情况下,您需要在运行剧本之前将该过滤器部署到工作目录中的jenkins。

如果不是这种情况,并且上述任务到处都失败了,那么您需要编辑问题并确切说明您要实现的目标。

编辑我可以在openshift-ansible project的历史记录中找到对您上面的过滤器的引用,但我不得不回到2015年。如今,此过滤器已不存在。您从哪里复制行?如果需要,这里是the reference I could find