てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible] paramiko と ansible-pylibssh のどっちが使われたか確認する方法

はじめに

ネットワークモジュールが長らく内部的に利用している SSH クライアントライブラリとして、paramiko があります。

最近は ansible-pylibssh というもの新しいものもあります。登場した経緯は Ansible の公式ブログの記事に書かれています。

そして、各ネットワークモジュールが内部的に利用している ansible.netcommon コレクションのデフォルトの動作は自動(auto)です。ansible.netcommon.network_cli コネクションプラグインでいうと、ssh_type パラメーターの値によって決まります。paramikolibssh のように、明示指定もできます。

明示的に指定ないと、結局どっちが使われたんだろう?とあいまいになるケースもあるかもしれません。

そんなときに確認する方法です。

  • 確認環境
    • ansible-core 2.13.5
    • ansible.netcommon コレクション 4.0.0

どちらが使われているか確認する方法

ansible-playbook コマンドで -v を4つ以上(-vvvv)つけると、paramikoansible-pylibssh のどっちが結局使われてるのかが分かります。

ssh_typeautoparamiko が使われた場合:

$ 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_typeautoansible-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
...(略)...