※こちらは過去ブログで2016/02/03に投稿した記事をコピーしたものです。
Ansibleを使っていてトラブルが起きたのでメモ。
事象
raspberry piをAnsibleで諸々操作していたところ、ある時から鍵認証のパスフレーズを何回も聞かれるようになりました。
以下のような感じです。正しいパスフレーズを入力している(コピペしているので間違いない)のに、必ず3回入力を求められます。
1 2 3 4 5 6 7 8 |
[user@vagrant-centos65 ~]$ ansible -m ping 192.168.x.x Enter passphrase for key '/home/user/.ssh/id_rsa': Enter passphrase for key '/home/user/.ssh/id_rsa': Enter passphrase for key '/home/user/.ssh/id_rsa': 192.168.x.x | success >> { "changed": false, "ping": "pong" } |
しかも、playbookを使うとタスク毎に3回パスワードの入力を求められてしまい、面倒な事この上ありません。
Raspberry piのOS(Raspbian)再インストールまで実施したのですが、解消せず。ただし、別のユーザーを作成してそちらでAnsibleコマンドを実行すると、発生しません。
原因と対策
結論としては、Ansibleサーバ側(=sshクライアント側)が原因でした。使用していたユーザーのホームディレクトリの以下ファイルを削除すると、次回ansibleコマンド実行時に再作成され、解消しました。
~/.ansible/cp/ansible-ssh-192.168.x.x-22-user
ファイルの種類は「socket」とのこと
ansible-ssh-192.168.x.x-22-user: socket
正常な状態だと、1分も経たないうちに削除されるのですが、何らかの理由で削除されずに残ってしまっていたようです。私の場合1月13日から残っていました。
もう少し詳しく確認してみると、ansibleコマンドを実行してから1分ほど、Ansibleサーバ側でLISTENINGしているようです。本来その間のみ存在しているはずなのに、残って悪さしていた様子。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[user@vagrant-centos65 .ansible]$ netstat -ane|grep ansible;ls -la cp unix 2 [ ACC ] STREAM LISTENING 26749 /home/user/.ansible/cp/ansible-ssh-192.168.x.x-22-user.CpQMvTQe8yJUppPZ total 8 drwx------ 2 user users 4096 Feb 2 15:53 . drwx------ 4 user users 4096 Jan 17 15:02 .. srw------- 1 user users 0 Feb 2 15:53 ansible-ssh-192.168.x.x-22-user [user@vagrant-centos65 .ansible]$ [user@vagrant-centos65 .ansible]$ [user@vagrant-centos65 .ansible]$ netstat -ane|grep ansible;ls -la cp total 8 drwx------ 2 user users 4096 Feb 2 15:54 . drwx------ 4 user users 4096 Jan 17 15:02 .. [user@vagrant-centos65 .ansible]$ |
よくわからず使っているとハマりますね。勉強が足りませんでした。
最後までご覧いただきありがとうございました!よろしければ広告もご覧ください。