web-dev-qa-db-ja.com

サーバーへの共有接続に失敗しました(Ansibleプレイブックを実行しようとしています)

私は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

8
sabrinazuraimi

表示されるエラーメッセージは次のとおりです。

/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の設定がすでに含まれている可能性があります。

15
techraf