てくなべ (tekunabe)

ansible / network automation / 学習メモ

【Ansible】ping 系モジュールまとめ(ping/win_ping/ios_ping/nxos_ping/net_ping)

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 IOSping コマンドを生成して、ターゲットホスト上で実行する
nxos_ping ターゲットホスト dest オプション指定先 ICMP Cisco NX-OS の ping コマンドを生成して、ターゲットホスト上で実行する
net_ping ターゲットホスト dest オプション指定先 ICMP ansible_network_os 変数に応じて、ios_pingnxos_ping モジュールを利用する
  • *1 : ping モジュールのプロトコルについて
    • 利用するコネクションプラグインに依存します
      • ssh / paramiko: sshPython スクリプトを送って実行できるか
      • network_cli: SSH でネットワーク機器に接続できるか
      • netconf: NETCONF でネットワーク機器に接続できるか

[2020/01/05 追記] network_clinetconf についての上記の挙動は Ansible 2.8 までです。Ansible 2.9 では、ネットワーク機器に接続しない仕様に変更されました。

[Ansible] ネットワーク機器に接続する条件はバージョンやコネクションブラグインによって異なる - てくなべ (tekunabe)

参考