この記事は Ansible Advent Calendar 2022 6日目の記事です。
はじめに
ansible-core 2.14.0 で、ansible-config dump
コマンドにで出力フォーマットを指定する -f
、--format
オプションが追加されました。
ansible community package のバージョンとしては 7.0.0 からです。
ansible-config dump
コマンドは、カレントディレクトリにおいて、反映されている設定内容を表示するコマンドです。
これまでは、シンプルな「設定項目名 = 設定値」という形式でしたが、JSON や YAML でも表示できるようになりました。
試した結果をまとめます。
動作確認環境
- ansible-core 2.14.0
おためし
普通に ansible-config dump
だけだと表示量が多いので、デフォルトからの変更点だけ表示される --only-changed
とあわせてためします。
JSON (-f json
)
コマンド
$ ansible-config dump --only-changed -f json
表示
[ { "name": "CONFIG_FILE", "origin": "", "type": null, "value": "/home/sakana/ansible/ansible.cfg" }, { "name": "DUPLICATE_YAML_DICT_KEY", "origin": "/home/sakana/ansible/ansible.cfg", "type": null, "value": "error" }, { "name": "HOST_KEY_CHECKING", "origin": "/home/sakana/ansible/ansible.cfg", "type": null, "value": false }, { "name": "HOST_PATTERN_MISMATCH", "origin": "/home/sakana/ansible/ansible.cfg", "type": null, "value": "error" }, { "name": "INVENTORY_ANY_UNPARSED_IS_FAILED", "origin": "/home/sakana/ansible/ansible.cfg", "type": null, "value": true } ]
YAML (-f yaml
)
コマンド
$ ansible-config dump --only-changed -f yaml
表示
- name: CONFIG_FILE origin: '' type: null value: /home/sakana/ansible/ansible.cfg - name: DUPLICATE_YAML_DICT_KEY origin: /home/sakana/ansible/ansible.cfg type: null value: error - name: HOST_KEY_CHECKING origin: /home/sakana/ansible/ansible.cfg type: null value: false - name: HOST_PATTERN_MISMATCH origin: /home/sakana/ansible/ansible.cfg type: null value: error - name: INVENTORY_ANY_UNPARSED_IS_FAILED origin: /home/sakana/ansible/ansible.cfg type: null value: true
デフォルト (-f display
)
デフォルトは -f display
扱いです。これまでもあった、おなじみの形式です。
コマンド
$ ansible-config dump --only-changed -f display
表示
CONFIG_FILE() = /home/sakana/ansible/ansible.cfg DUPLICATE_YAML_DICT_KEY(/home/sakana/ansible/ansible.cfg) = error HOST_KEY_CHECKING(/home/sakana/ansible/ansible.cfg) = False HOST_PATTERN_MISMATCH(/home/sakana/ansible/ansible.cfg) = error INVENTORY_ANY_UNPARSED_IS_FAILED(/home/sakana/ansible/ansible.cfg) = True
おわりに
ちょっとその場で確認する場合は今までの表示で十分だと思います。一方で、設定値をテンプレートファイルに流し込んでドキュメントを生成したいような場合は、JSON や YAML のようなフォーマットだと便利かもしれません。
参考
2.14.0 の Changelog
ansible-config adds JSON and YAML output formats for list and dump actions.