2016-12-13 8 views
1

SSHサーバーとAnecessにとって新しく、これは間違った質問かもしれません。サーバーへの共有接続が失敗しました(Ansibleプレイブックを実行しようとしました)

以下のbashコマンドを使用して非公開鍵でサーバーにアクセスしている間に、Aniableプレイブックを実行しようとしました。

ansible-playbook dbserv.yml -i hosts --limit local-servers --private-key=(where I put the private key) 

しかし、私はこのエラーを取得しています:

fatal: [xxx]: FAILED! => { "changed": false, "failed": true, "invocation": { "module_name": "setup" }, "module_stderr": "Shared connection to xxx closed.\r\n", "module_stdout": "/bin/sh: 1: /usr/bin/python2.7: not found\r\n", "msg": "MODULE FAILURE" }

私はPythonが、私はこのエラーを取得していますなぜ私は理解していない自分のコンピュータにインストールされています。

OS環境: のUbuntu 16.04.1

+0

ターゲットOSのバージョンと 'dbserv.yml'と' hosts'の内容に関する情報を質問に追加してください。 – techraf

答えて

6

あなたが得るエラーメッセージは次のとおりです。

/usr/bin/python2.7: not found

Ansibleは(Managed node requirementsを参照してください)Pythonが正しく動作するためにインストールされているターゲットマシンが必要です。

あなたのターゲットは、Python 2がインストールされていないUbuntu 16.04です。この場合、インストールするか、experimental support for Python 3を試してみる必要があります。

のPython 2.7を別のディレクトリにインストールされている場合は、あなたのインベントリファイル、例えば、ホスト変数を追加することができますが(ホスト名と仮定すると、あなたのquestion`のようxxxです):

xxx ansible_python_interpreter=/path/to/python2.7 

モジュールを実行するにはPythonの3(experimental)で、設定:

xxx ansible_python_interpreter=/usr/bin/python3 

注:デフォルトでAnsibleは/usr/bin/pythonを探しますので、それはあなたのplaybいる可能性がありますook、インベントリファイル、またはansible.cfgにはすでにターゲットマシンに存在しない/usr/bin/python2.7の設定が含まれています。

+0

私は参照してください。ターゲットマシンで "whereis python 2.7"コマンドを使用し、/usr/bin/python2.7にありました。 ターゲットマシンから実行可能なコマンドを実行するはずですか? – sabrinazuraimi

+0

オペレーティングシステムがAnsibleに言うなら、Pythonが '/ usr/bin/python2.7'にあることはありえません。そこにはありません。 '/ usr/bin/python2.7'とタイプすれば実行できますか?また、Anabilitiesがデフォルトで2.7を実際に要求するべきではありません - あなたのプレイブック、ansible.cfgとインベントリファイルをチェックしてください。 – techraf

+0

ありがとう、それは私の側でエラーだった、Python 2.7は実際には/usr/lib/python2.7にあります。 しかし、今私はPythonインタプリタにアクセスするためのアクセス許可を持っていないと言って別のエラーがあります。 – sabrinazuraimi