2016-03-23 46 views
0

我有一個簡單的應用程序,應該顯示我的服務狀態。我想查看機器的輸出以查看狀態是否有效。所以我用一個調試打印,像這樣:使用循環調試打印不能運行

- name: name_of_services 
    shell: systemctl status {{item}} 
    with_items: 
    - service1 
    - service2 
    register: out 

- debug: var=item.stdout_lines 
    with_items: out.results 

當我執行此我得到很多信息,我不想加item.stdout_lines信息,我確實想在它的結束。 如何更好地查看我的命令的輸出?

回答

0

對於在循環中調用的模塊(包括debug)(即with_items),將顯示每次迭代中項目的值。我不知道有什麼辦法可以解決這個問題。如果你想減少你的輸出,你可以嘗試切換到使用msg參數到debug module,它採用了一個以jinja爲模板的字符串。你可以做這樣的事情,顯然調整正則表達式來匹配systemctl輸出。

- name: show values 
    debug: msg="{{ item.stdout_lines | replace_regex('^(.*).service.*Active: (.*).$', \\\1 \\\2) }}" 
    with_items: out.results 

如果你不想使用replace_regex功能,您可以考慮編寫自己的filter plugin對數據進行格式化你喜歡的方式。

一般來說,安全劇本不是顯示通過註冊變量,事實等收集的狀態信息的好地方。劇本輸出更適合於任務狀態。