Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
このページの内容
 

AnsibleモジュールのJunos PyEZ(junos-eznc)インストールエラーのトラブルシューティング

問題点

説明

juniper.deviceモジュールの実行中に、Ansible制御ノードがjunos-ezncがインストールされていないというエラーを生成します。次に例を示します。

原因

juniper.deviceコレクションの多くのモジュールは、Junos PyEZ Pythonライブラリを使用して、Junosデバイス上で操作を実行します。ライブラリがインストールされていない場合、またはAnsibleがライブラリを見つけられない場合、Ansibleはこのエラーを生成します。例えば、仮想環境や非標準システムのPythonインストールにAnsibleをインストールし、Ansibleがデフォルトのシステムの場所とは異なる場所でライブラリを検索している場合など、Ansibleがライブラリを検索できないことがあります。

ソリューション

AnsibleコントロールノードにJunos PyEZをインストールし、必要な環境変数を更新します。詳細については、「 https://github.com/Juniper/py-junos-eznc#installation 」を参照してください。

仮想環境または非標準のシステムロケーションで Python インストールを使用して Ansible を実行する場合は、次のことを行う必要があります。

  • Junos PyEZを目的のPythonインストールの下にインストールします(必要に応じて仮想環境または非標準システムの場所)。

  • Pythonインタプリタへのパスを指定します。たとえば、Ansible設定ファイルで interpreter_python 変数を設定したり、Ansibleインベントリファイルで適切なデバイスの ansible_python_interpreter 変数を定義したりします。

    詳細については、Ansibleの公式ドキュメントの「 インタプリターの検出 」を参照してください。

Junos PyEZがコントロールノードに正常にインストールされていることを確認するには、Ansibleの操作に使用するのと同じPythonインストールを使用して、Pythonインタラクティブシェルを起動します。次に、 jnpr.junos パッケージをインポートします。

jnpr.junosパッケージのインポートに成功すると、PyEZ Junos Ansible制御ノードにインストールされます。Ansibleモジュールの実行時に同じエラーメッセージが表示される場合は、Ansible環境内のPythonインタープリターの正しい場所を指定していることを確認してください。

注:

Ansibleが使用するPythonのインストールを確認するには、 -vvv オプションでAnsibleプレイブックを実行し、ログメッセージを確認します。