2017-11-11 100 views
1

我想將兩個字符串組合在一起。一個從set_facts中提取,另一個在playbook中定義爲變量。但是,當我運行調試。我得到額外的字符,如[u''] 但沒有得到乾淨的輸出。Ansible - 結合兩個變量將[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

list_1是一個列表對象,list_2是一個字符串。

如果你想在年底的字符串,則需要先使用join filter列表轉換爲字符串,然後連接具有其餘部分:

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

真棒。有效。好極了!。 techraf,你真了不起。感謝您的解釋以及:) – sherri