はじめに
Anislbe には、値を変換したり取り出したりする、さまざまなフィルター機能があります。 しかし、Playbook を書かく時、なかなか意図通りにフィルターできないこともあるのではないしょうか。 このようなときは、毎回 Playbook を実行するのも手間になり「とにかく手軽にフィルターを試行錯誤したい」と思うこともあると思います(私はあります)。
そんな時に便利な ansible-console
コマンドの使い方をご紹介します。
なお、本来は ansible-console
コマンドはフィルターの確認だけでなく、Plyabook と同じようにモジュールを実行できますが、この記事では特定用途に限って紹介をします。
- 動作確認環境: Ansible 2.8.5
ansible-console コマンドの使い方
以下、一連の流れです。
$ ansible-console -i localhost, # 接続先は問わないのでここでは localhost のみ Welcome to the ansible console. Type help or ? to list commands. test@all (1)[f:5]$ debug msg={{ 10 | random }} # random フィルター確認 localhost | SUCCESS => { "msg": "6" } test@all (1)[f:5]$ debug msg={{ 10 | random }} # 再度確認(↑キーで履歴呼び出し) localhost | SUCCESS => { "msg": "2" } test@all (1)[f:5]$ debug msg={{ [3, 4, 2] | max }} # max フィルター確認 localhost | SUCCESS => { "msg": "4" } test@all (1)[f:5]$ debug msg={{ [3, 4, 2] | min }} # min フィルター確認 localhost | SUCCESS => { "msg": "2" } test@all (1)[f:5]$ exit # 終了 [test@6175d1755f33 ~]$
より雰囲気をお伝えするため、同じ内容を動画にしたものを載せます。
参考
その他、多少環境の準備は必要ですが試行錯誤しやすい点では、Jupyter Notebook の Ansible カーネルである ansible-jupyter-kernel も便利です。