モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

ansibleの動作条件と確認方法

ansibleの良い所は、動作するのにクライアント環境にsshで繋がってpythonが動けば良いだけ、というところです。


が、なんか環境によって動かなかったりすることがあります。

確認すべき点をまとめてみました。


まず基本ですが、sshで接続できるか確認します。
接続できるなら、リモート環境のコマンドが実行出来るかを確認します。

$ ssh foo@example.com hostname
www.example.com


自分は、sshで接続できるのにリモートのコマンドが実行できず、調べてみたらログインシェルが /etc/shells に書かれていなかったため、それでエラーになって実行できなくなっていました。


コマンドが実行できてもダメな場合があります。
実は ansible はデフォルトの設定だと sftp の接続も出来ないといけないようです。



CentOS5や6ではデフォルトで sftp が使えないようになっているため、問題がなければ


/etc/ssh/sshd_conf

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


と設定すれば動きました。