アドホックな ansible コマンドの JSON 出力をフィルタリングしたいと思います。たとえば、複数のホストの「ファクトansible_lsb.description
」の長いリストを取得し、いくつかのレベルの深さの可能性のある 1 つだけを表示して、バージョンをすばやく比較できるようにします。実行中のソフトウェアの正確な時刻やタイムゾーンなどを確認します。
これは機能します:
ansible myserver -m setup -a 'filter=ansible_lsb'
myserver | SUCCESS => {
"ansible_facts": {
"ansible_lsb": {
"codename": "wheezy",
"description": "Debian GNU/Linux 7.11 (wheezy)",
"id": "Debian",
"major_release": "7",
"release": "7.11"
}
},
"changed": false
}
ただし、セットアップモジュールのドキュメントに記載されているように、「フィルターオプションは ansible_facts の下の最初のレベルのサブキーのみをフィルター処理する」ため、これは失敗します。
ansible myserver -m setup -a 'filter=ansible_lsb.description'
myserver | SUCCESS => {
"ansible_facts": {},
"changed": false
}
(参考までに、タスクのwhen conditionalなどの他の場所でドット表記を使用できます)
出力が表示される前に JSON キーをフィルタリングする方法はありますか?