はじめに
ネットワークモジュールが長らく内部的に利用している SSH クライアントライブラリとして、paramiko
があります。
最近は ansible-pylibssh
というもの新しいものもあります。登場した経緯は Ansible の公式ブログの記事に書かれています。
そして、各ネットワークモジュールが内部的に利用している ansible.netcommon
コレクションのデフォルトの動作は自動(auto
)です。ansible.netcommon.network_cli
コネクションプラグインでいうと、ssh_type
パラメーターの値によって決まります。paramiko
や libssh
のように、明示指定もできます。
明示的に指定ないと、結局どっちが使われたんだろう?とあいまいになるケースもあるかもしれません。
そんなときに確認する方法です。
- 確認環境
- ansible-core 2.13.5
- ansible.netcommon コレクション 4.0.0
どちらが使われているか確認する方法
ansible-playbook
コマンドで -v を4つ以上(-vvvv
)つけると、paramiko
か ansible-pylibssh
のどっちが結局使われてるのかが分かります。
ssh_type
が auto
で paramiko
が使われた場合:
$ ansible-playbook -i inventory.ini ios_show.yml -vvvv ...(略)... <192.168.1.11> ssh type is set to auto <192.168.1.11> autodetecting ssh_type [WARNING]: ansible-pylibssh not installed, falling back to paramiko <192.168.1.11> ssh type is now set to paramiko ...(略)...
上記の WARNING についてはこちらの記事を参照してください。
ssh_type
が auto
で ansible-pylibssh
が使われた場合:
$ ansible-playbook -i inventory.ini ios_show.yml -vvvv ...(略)... <192.168.1.11> ssh type is set to auto <192.168.1.11> autodetecting ssh_type <192.168.1.11> ssh type is now set to libssh ...(略)...