ansible中的转义特殊字符

ansible中的转义特殊字符,ansible,Ansible,我正在编写剧本来修改sql脚本,我需要创建一个包含条件串联的字符串。 这是条件结构: (server.primary_name||'.'||server.arpa_domain like '%server_name%') 这是一项艰巨的任务: - name: Query Conditionals set_fact: query_conditionals_list: "{{ query_conditionals_list + [ '(server.primary_name|

我正在编写剧本来修改sql脚本,我需要创建一个包含条件串联的字符串。
这是条件结构:

(server.primary_name||'.'||server.arpa_domain like '%server_name%')
这是一项艰巨的任务:

- name: Query Conditionals
  set_fact:
    query_conditionals_list: "{{ query_conditionals_list + [ '(server.primary_name||.||server.arpa_domain like %' + item + '%)' ] }}"
  with_items: "{{ server_names }}"
  when: "item not in query_conditionals"
  loop_control:
    label: "{{item}}"

- name: Join names
  set_fact:
    query_conditionals: "{{query_conditionals_list | join (' OR ')}}"
我相信我没有正确地摆脱父母和单身的困扰。
有可能逃脱他们吗

谢谢

编辑 我做了一些修改。 正如mdaniel所建议的,我不是从getgo创建字符串,而是先创建一个列表,然后使用OR进行连接。这样就解决了我的问题。

虽然,我还无法避开单引号

但我能够在ansible任务中找到使用VAR的解决方法。
在使用vars时,我能够维护我想要使用的结构并保存单引号

- name: Query Conditionals
  set_fact:
    query_conditionals_list: "{{ query_conditionals_list + [ server_item ] }}"
  when: "item not in query_conditionals_list"
  loop_control:
    label: "{{item}}"
  vars: 
    server_item: "(server.primary_name||'.'||server.arpa_domain like '%{{item}}%')"
  with_items: "{{ server_names }}"
要释放
作为字符串文字使用,然后使用您要查找的内容