Ansibleにpingモジュールというのがありますが、これはLinuxのコマンドと仕様が違うようだったので、コミュニティに聞いたりして調べたのでQiitaに残します。
pingモジュールとは
公式はこちらです。
公式にもありますが、pingモジュールにはコマンドで使うような指定したアドレスとの疎通確認には使えません。
対象サーバでAnsibleが使用出来るか
を確認する為のモジュールのようで、
Pythonが入ってるか見てくれるようです。
実行結果
これだけだと記事として微妙かなと思ったので、実行したらどうなるかコードを書いてみました。debugモジュールで何が出力されるか確認。
- hosts: webservers
tasks:
- name: ping
ping:
register: result
- name: debug
debug:
msg: "{{ result }}"
実行結果です。
ansible-playbook -i inventory playbook.yml
PLAY [webservers] ************************************************************************************************************
TASK [Gathering Facts] *******************************************************************************************************
ok: [**.***.***.***]
TASK [ping] ******************************************************************************************************************
ok: [**.***.***.***]
TASK [debug] *****************************************************************************************************************
ok: [**.***.***.***] => {
"msg": {
"changed": false,
"failed": false,
"ping": "pong"
}
}
PLAY RECAP *******************************************************************************************************************
**.***.***.*** : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
pingにpongが格納されてますね。これが成功ということみたいです。遊び心?
終わりに
pingモジュールはこれの他にもnet_pingなど、色んな種類のpingモジュールがあるようですが、どれもlinuxコマンドのようなpingではありませんでした。
どうしてもやりたければcommandモジュールかshellモジュールを使うしかないようです。