Ansible - 组合两个变量将[u ...]添加到其中一个变量中

时间:2017-11-11 01:25:11

标签: jquery python json ansible

我正在尝试将两个字符串组合在一起。一个从set_facts中提取,另一个在playbook中定义为变量。但是当我运行调试时。我收到了[u'']等额外字符 但没有得到干净的输出。

这是我想要的结果:

final_list: usera,userb,userc,userd,usere,userf

但这是我得到的结果:

ok: [localhost] => {
    "final_list": "[u'usera,userb,userc'],userd,usere,userf"
}

这是我的剧本:

    - vars:
        list_2: "userd,usere,userf"
    - set_fact:
        list_1="{{ parent_hgdata.json|json_query("parameters[?name=='usernames'].value") }}"

 - name: verify list 1 output
      debug:
        var: list_1

### The above task gives me the right output for list_1

    - name: Combining list _1 and list_2
      set_fact: 
        final_list: "{{ list_1 }},{{ list_2 }}"   

    - name: Now verify the final_list
      debug: 
        var: final_list

现在当我调试final_list时。它给了我不洁的输出

"final_list": "[u'usera,userb,userc'],userd,usere,userf"

1 个答案:

答案 0 :(得分:1)

list_1是一个列表对象,list_2是一个字符串。

如果你想在最后有一个字符串,你需要先使用join filter将列表转换为字符串,然后与其余部分连接:

set_fact:
  final_list: "{{ list_1 | join(‘,’) }},{{ list_2 }}"