私はSSHサーバーとAnsibleにかなり慣れていないので、これは馬鹿げた質問かもしれません。
以下のbashコマンドを使用して、秘密鍵でサーバーにアクセスしながら、Ansibleプレイブックを実行しようとしました。
ansible-playbook dbserv.yml -i hosts --limit local-servers --private-key=(where I put the private key)
ただし、次のエラーが発生します。
致命的:[xxx]:失敗しました! => {"changed":false、 "failed":true、 "invocation":{"module_name": "setup"}、 "module_stderr": "xxxへの共有接続が閉じています。\ r\n"、 "module_stdout": "/ bin/sh:1:/usr/bin/python2.7:not found\r\n"、 "msg": "MODULE FAILURE"}
Pythonがコンピュータにインストールされているため、このエラーが発生する理由がわかりません。
OS環境:Ubuntu 16.04.1
表示されるエラーメッセージは次のとおりです。
/usr/bin/python2.7:見つかりません
Ansibleが正しく機能するためには、ターゲットマシンにPythonがインストールされている必要があります( 管理対象ノードの要件を参照) )。
最も可能性が高い理由は、ターゲットがPython 2がインストールされていないUbuntu 16.04であることです。この場合は、インストールするか、 Python 。
Python 2.7が別のディレクトリにインストールされている場合、インベントリファイルなどにホスト変数を追加できます(質問のようにホスト名がxxx
であると仮定します `):
xxx ansible_python_interpreter=/path/to/python2.7
Python 3( experimental ))でモジュールを実行するには、次のように設定します。
xxx ansible_python_interpreter=/usr/bin/python3
注:デフォルトでは、Ansibleは/usr/bin/python
を検索するため、プレイブック、インベントリファイル、またはansible.cfg
には、ターゲットマシンに存在しない/usr/bin/python2.7
の設定がすでに含まれている可能性があります。