我在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=
答案 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