Posted at

Ansible 2.0 ERROR! The module wait_for host="my_host" port=22 was not found in configured module paths.

More than 3 years have passed since last update.


TL;DR

local_action の代わりに delegate_to: localhost を使う。


経緯と対応

Ansible 2.0.0.1 で既存 Playbook の動作確認をしていたら、リモートホストの再起動で local_action を使っているタスクが表題のエラーで落ちたので回避策メモ。

例えばこんなふうに非同期投げっぱの再起動タスクがある場合

- name: reboot server

command: reboot
async: 0
poll: 0
ignore_errors: true

Not working

- name: wait for reboot

local_action:
module: wait_for
host="{{ inventory_hostname }}"
port=22
delay=5
become: no

Work around

- name: wait for reboot

wait_for: >
host="{{ inventory_hostname }}"
port=22
delay=5
delegate_to: localhost

まだ 2.0 にあがったばかりですし、 Github Issues も大変盛り上がってるので、とりあえず回避策だけ施して様子を見守ることにします。


以上です。