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コレクションに含まれるジュニパーネットワークスのAnsibleモジュールは、Junos PyEZ Pythonライブラリを使用してJunosデバイス上で操作を実行します。Ansibleは、ライブラリがインストールされていない場合、またはAnsibleがライブラリを見つけられない場合に、このエラーを生成します。例えば、Ansible を仮想環境にインストールした場合、または標準以外のシステムの場所にある Python インストールの下にインストールし、Ansible がデフォルトのシステムの場所などの別の場所でライブラリを検索している場合、Ansible がライブラリの検索に失敗することがあります。

解決

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

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

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

  • Ansible構成ファイルで interpreter_python 変数を設定するか、Ansibleインベントリファイルで適切なデバイスの ansible_python_interpreter 変数を定義するなどして、Pythonインタプリタへのパスを指定します。

    詳細については、公式の Ansible ドキュメントの「 Interpreter Discovery 」を参照してください。

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

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

手記:

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