Ansible には ping モジュールや net_ping モジュールなど、モジュール名に ping が含まれるものがいくつかあります。
名前は似ていますが、どこからどこへの ping なのか、何のプロトコルを使うのか、などの点で性質が異なります。
例えば、 公式ドキュメントの ping モジュールの説明には
For Network targets, use the net_ping module instead.
とありますが、net_ping モジュールは ping モジュールとは用途や性質が異なり、代わりにはならず混乱してしまうのではないかと思い、一旦以下にまとめます。
| モジュール名 | from | to | プロトコル | 補足 |
|---|---|---|---|---|
| ping | コントロールホスト | ターゲットホスト | コネクションプラグインに依存(*1) | |
| win_ping | コントロールホスト | ターゲットホスト | WinRM | |
| ios_ping | ターゲットホスト | dest オプション指定先 |
ICMP | Cisco IOS の ping コマンドを生成して、ターゲットホスト上で実行する |
| nxos_ping | ターゲットホスト | dest オプション指定先 |
ICMP | Cisco NX-OS の ping コマンドを生成して、ターゲットホスト上で実行する |
| net_ping | ターゲットホスト | dest オプション指定先 |
ICMP | ansible_network_os 変数に応じて、ios_ping や nxos_ping モジュールを利用する |
[2020/01/05 追記] network_cli と netconf についての上記の挙動は Ansible 2.8 までです。Ansible 2.9 では、ネットワーク機器に接続しない仕様に変更されました。
[Ansible] ネットワーク機器に接続する条件はバージョンやコネクションブラグインによって異なる - てくなべ (tekunabe)
参考
ios_pingモジュール の利用例 tekunabe.hatenablog.jp