まずは結論から、例えば以下のようなタスクの場合、 uname -a コマンドの結果を /tmp/hoge に出力する /tmp/hoge が既にあるなら実行しない コメントの通りファイルの存在確認なら stat モジュールで十分なのですが、より多くのケース(なにかしらのコマンドの結果を元に実行の有無を制御)を想定してあえて shell モジュールを使います 次のようにします。 - hosts: localhost tasks: - shell: test -e /tmp/hoge register: res always_run: yes failed_when: no changed_when: res.rc != 0 - shell: uname -a > /tmp/hoge when: res|changed これだけなら shell モジュールの creates を使うだけでいいん