Ansibleでデバッグする

SIOS Coati開発チームの清水です。

今回はAnsibleで開発するうえで知っておくと便利なデバッグTIPSを2つ紹介します。

  1. Playbook Debugger
  2. Step実行

どちらも公式のドキュメントに書かれていることなので、既に知っている方もいらっしゃるかと思いますが、もしご存知ではない方はこの機会に是非活用してみてください。


1. Playbook Debugger

Ansible用のデバッガです。Playbookの実行にFailedしたとき、その時点での変数を確認したり、リトライしたりすることができます。

バージョン2.1以降であればすぐに使用することができます。デバッガを起動するには、Playbookに “strategy: debug” と書いておくだけです。

- hosts: localhost
  strategy: debug

  tasks:
... タスクを定義する ...

Playbookはなるべく触りたくない…という場合は、ansible.cfgを書き換えると良いです。

[defaults]
strategy = debug

この状態でタスクに失敗したとき、自動的にデバッグ画面に移ります。そこでコマンドを入力することで、変数の確認・更新やタスクのリトライができます。

コマンドはシンプルで、公式のドキュメントにサンプルも載っているため、1度みていただければ雰囲気をすぐにつかめると思います。

http://docs.ansible.com/ansible/latest/playbooks_debugger.html

毎回 debugモジュールを仕込む必要もなく、変数を少し手直しして再試行もできるので、うまく使えば効率的に原因特定&修正できます。

 


2. Step実行

タスクをひとつずつ実行するモードです。

使い方はこちらも簡単で、Playbookの実行コマンドに “–step” をつけるだけです。

ansible-playbook playbook.yml --step

これを実行すると、タスクごとにコマンドを入力できるようになります。以下のコマンドをもとに、どのように処理を進めるか選択していきます。

  • y = そのタスクを実行する
  • n = そのタスクをスキップする
  • c = 残りのタスクをすべて実行する

なかなかPlaybookが期待通りに動いてくれない…ときは、1ステップずつ実行しながらコードどおりの環境になっているか確認していくと、その原因を特定できることもあります。


知っておくと便利なAnsibleのデバッグ小ネタでした。以上です!

SNSでもご購読できます。