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