ansibleの良い所は、動作するのにクライアント環境にsshで繋がってpythonが動けば良いだけ、というところです。
が、なんか環境によって動かなかったりすることがあります。
確認すべき点をまとめてみました。
まず基本ですが、sshで接続できるか確認します。
接続できるなら、リモート環境のコマンドが実行出来るかを確認します。
$ ssh foo@example.com hostname www.example.com
自分は、sshで接続できるのにリモートのコマンドが実行できず、調べてみたらログインシェルが /etc/shells に書かれていなかったため、それでエラーになって実行できなくなっていました。
コマンドが実行できてもダメな場合があります。
実は ansible はデフォルトの設定だと sftp の接続も出来ないといけないようです。
CentOS5や6ではデフォルトで sftp が使えないようになっているため、問題がなければ
Subsystem sftp /usr/libexec/openssh/sftp-server
にコメントを外してsshdを再起動してやれば良いです。
ただ、なにかの理由で sftp は使わないようにしたい場合、下記のエントリーを参考に
「SFTP disableなCentOS環境でansibleを使う」
http://tagomoris.hatenablog.com/entry/20140318/1395118495
ansibleを動かすディレクトリで
ansible.cfg
[defaults] transport=ssh [ssh_connection] ssh_args= scp_if_ssh=True
と設定すれば動きました。