LoginSignup
39
35

More than 5 years have passed since last update.

Ansible2.0に対応したansible-playbook-debuggerが便利!

Last updated at Posted at 2016-03-16

Ansibleの利用にあたり便利なansible-playbook-debuggerが
Ansible2.0に対応していましたのでご紹介です!

GitHub:ansible-playbook-debugger

できること

plyabook内でタスクが失敗した時に、モジュールの引数や変数などを確認できます。また、デバッガ内でモジュールの引数を変更して、失敗したタスクの再実行ができます。

注意点

このデバッガーはAnsibleのバージョン1系には対応していません。

導入方法

ダウンロード

playbookが存在するディレクトリにて以下を実施します。

mkdir strategy_plugins
cd strategy_plugins
wget https://raw.githubusercontent.com/ks888/ansible-playbook-debugger/master/strategy_plugins/debug.py

playbookの編集

playbook.yml
- hosts: all
  strategy: debug #追加
  tasks:

使い方

通常通りansible-playbookコマンドを発行します。
そしてtaskが失敗すると以下のようになります。

TASK [shared_usage/roles/os : ネットワーク設定] ****************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ImportError: No module named gi.repository
failed: [xxxxx] => (item={u'conn_name': u'eth0', u'ifname': u'eth0', u'type': u'ethernet', u'ip4': u'xx.xx.xx.xx/24', u'gw4': u'xx.xx.xx.xx'}) => {"failed": true, "item": {"conn_name": "eth0", "gw4": "xx.xx.xx.xx", "ifname": "eth0", "ip4": "xx.xx.xx.xx/24", "type": "ethernet"}, "parsed": false}
Debugger invoked
(debug) 

(debug)が表示されたらデバッグモードに入ったことになります。

デバッグモードでできること

コマンド 出力結果
p task 失敗したタスクの表示
p task.args タスク内で指定された引数(copyモジュールにおけるsrc/destなど)を表示します)
p vars 変数の一覧を表示します(gather_factsがTrueの場合は収拾した変数も表示します)
p host 対象のホスト名を指定します(inventory内の設定)
p result タスクの実行結果を表示します
task.args[key] = value モジュールの引数keyをvalueで更新します
vars[key] = value 変数keyをvalueで更新します
redo/r 失敗したタスクを再実行します
continue/c Playbookの実行を継続します
quit/q デバッグモードを終了します(Playbookの実行は中止されます)
39
35
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
35