Ansibleのコールバックプラグインの設定〜使用
背景
- Playbook実行中に必要なタスクだけ表示させたいという要件がありました。
- Twitterでつぶやいたところ、callbackプラグインが内容に合いそうだという指摘を受けたので調べてみることにしました。
目的
コールバックプラグインとは
- Ansibleジョブ実行時の表示を変化させたり、別ツールと連携させたりできるプラグインのこと。
- ansible.cfgから容易に設定が可能。
- 今回はselective pluginを使用します。
手順
コールバックプラグインを設定する
- ansible.cfgに[defaults]セクションに下記の通り記述します。
[defaults] stdout_callback = selective
Playbookを書く
- localhostに対してジョブを実行するPlaybookを書きます。
- 表示させたいタスクに
tags:[print_action]
を追加します。
--- - name: callback plugin テスト用 hosts: localhost connection: local tasks: - name: debug debug: msg: "tagなしだから表示されない" - name: debug msg debug: msg: "メッセージが表示される" tags: [print_action] - name: debug list debug: var: item loop: - "msg1" - "msg2" - "msg3" tags: [print_action]
実行結果
hogehogenoiMac:study user$ ansible-playbook main.yml .. # debug msg *************************************************************************************************************** * localhost - changed=False -- メッセージが表示される --------------------------------- # debug list ************************************************************************************************************** * localhost - changed=False -- All items completed ------------------------- * msg1 - FAILED!!! -- ------------------------------------------------ * msg2 - FAILED!!! -- ------------------------------------------------ * msg3 - FAILED!!! -- ------------------------------------------------ # STATS ******************************************************************************************************************* localhost : ok=4 changed=0 failed=0 unreachable=0
実際は色付きで表示されます。カラフル!
メモ
なんでloopを使用した際はFAILEDになるんだろう。。。と思ってたらissueにあがってた。 アップデートで解決することを祈ります。