星期五, 2月 05, 2016

Ansible 的 callback

Callback 可以讓人有機會處理執行的結果,網路上有些人會寫自己的 callback plugin 以便統計執行結果什麼的。寫 callback plugin 的方法蠻簡單的,先繼承 CallbackBase ,然後覆寫裏面的方法即可,Ansible 有提供不少範例可供參考。
幾件事情要注意:
  • 寫 callback plugin 時:
    • 要寫 CALLBACK_TYPE,這裡如果填 'stdout' 時,在 ansible.cfg 裡的 stdout_callback 也要指定為這個 callback ,這樣 callback 才會生效。
    • 要寫 CALLBACK_NAME,這是 callback 的名稱,建議最好跟檔案名稱相符,並且不要跟官方的 callback 重複。
  • 使用時:
    • ansible.cfg 裡要指定 callback_plugins,這是填路徑。可以填相對路徑也可以填絕對路徑。
    • ansible.cfg 裡要指定 callback_whitelist,這是填 callback 的名稱,可以用 ',' 分隔多個 callback。顧名思義,是一個白名單的形式,有填才表示啟用 callback。
    • callback 在預設情況下只有在使用 ansible-playbook 時才會生效,如果要讓 ansible adhoc 也能用 callback,得在 ansible.cfg 裡指定 bin_ansible_callback=True 。不過,CALLBACK_TYPE='stdout' 的 callback plugin 是適用的。

沒有留言: