如何修复Ansible错误与消息“模板错误,模板字符串:没有名为'oo_prepend_strings_in_list'的过滤器

问题描述 投票:0回答:1

我遇到了来自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=
ansible
1个回答
0
投票

oo_prepend_string_in_list不是ansible提供的过滤器。

如果上述任务在您的本地计算机上正确运行,您已将此过滤器添加到您的安装中,可以直接在您的安装(不推荐)中,也可以在与您的剧本相同的级别或filter_plugins目录中的特定角色(example in a role)中添加

如果是这种情况,则需要在运行playbook之前将该过滤器部署到工作目录中的jenkins。

如果情况并非如此,并且上述任务无处不在,您需要编辑问题并准确解释您要实现的目标。

编辑我能够在openshift-ansible project的历史中找到对上述过滤器的引用,但我不得不回到类似于2015的东西。此过滤器今天不再存在。你从哪里复制你的线?如果您需要,这里是the reference I could find

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.