2017-06-01 74 views
0

找到了將註冊變量寫入文件的評分最高的問題,但是我遇到的麻煩是從數組中抓取每個IP地址並將它們寫入文件。例如:解析JSON中的Ansible註冊變量到另一個文件

ok: [localhost] => { 
    "changed": false, 
    "invocation": { 
     "module_args": { 
      "environment": "p", 
      "guest_os": "Linux", 
      "location": "sjc", 
      "vsphere_password": "username!", 
      "vsphere_username": "password" 
     } 
    }, 
    "result": [ 
     "10.44.100.100", 
     "10.101.111.100", 
     "10.101.112.130" 
    ] 

是我輸出的一個例子。我創建一個名爲result一個數組並把它在exit_json()

module.exit_json(result=json.loads(json.dumps(result_list, default=lambda o: o.__dict__))) 

只是想抓住所有的IP地址,所以我可以把它當作一個主機文件。如果解析起來更容易,我可以編輯我的模塊來創建實際的JSON,而不是創建一個IP數組。

回答

0

最後搞清楚了!

我結束了使用從ansible然後使用replace()功能

local_action: copy content="{{ json_hosts.result | ipaddr | replace('[','') | replace(']','') | replace(',', '') | replace('"', '') | replace("'", '') }}" dest=/path/ 

真難看,除非有一個更好的辦法

過濾 ipaddr