ansibleコマンド実行時にHost Key checkingのエラーになった場合の対処法

ansibleでリモートのサーバへパスワード認証で接続する際、初めて接続するサーバの場合などに以下のような接続エラーとなることがあります。

Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host’s fingerprint to your known_hosts file to manage this host.

これは、接続元ホストの~/.ssh/known_hostsに接続先ホストのfingerprintが無い場合や、接続先ホストのfingerprintが変わった場合に表示されます。

目次

対処法

システム共通の設定ファイルをansibleコマンド実行するカレントディレクトリにコピーします。

$ cp /etc/ansible/ansible.cfg .

コピーしてきたansible.cfgを編集します。

$ vi ./ansible.cfg .

62行目あたりにある、host_key_checking = Falseの行のコメントアウトを解除します。
コピー元との差分はこんな感じです。

$ diff /etc/ansible/ansible.cfg ./ansible.cfg
62c62
< #host_key_checking = False
---
> host_key_checking = False

これで接続エラーが回避できます。めでたしめでたし。