Ansible 모듈에 대한 Junos PyEZ(junos-eznc) 설치 오류 문제 해결
문제
설명
모듈을 juniper.device 실행하는 동안 Ansible 제어 노드는 설치되지 않은 오류를 junos-eznc 생성합니다. 예를 들면 다음과 같습니다.
"msg": "junos-eznc is required but does not appear to be installed. It can be installed using `pip install 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을 실행하는 경우 다음을 수행해야 합니다.
-
원하는 Python 설치 아래에 Junos PyEZ를 설치합니다(적절한 경우 가상 환경 또는 비표준 시스템 위치에서).
-
Python 인터프리터의 경로를 지정합니다(예: Ansible 구성 파일에서 변수를
interpreter_python설정하거나 Ansible 인벤토리 파일에서 적절한 디바이스에 대한 변수를ansible_python_interpreter정의).# file ansible.cfg [defaults] interpreter_python = /home/user/MyProjects/Ansible/venv/bin/python ...
자세한 내용은 공식 Ansible 설명서의 인터프리터 검색 을 참조하십시오.
Junos PyEZ가 제어 노드에 성공적으로 설치되었는지 확인하려면 Ansible 작업에 사용하는 것과 동일한 Python 설치를 사용하여 Python 대화형 셸을 시작합니다. 그런 다음 패키지를 가져옵니다.jnpr.junos
(venv) user@ansible-cn:~/MyProjects/Ansible$ python3 Python 3.12.3 (main, Nov 6 2025, 13:44:16) [GCC 13.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import jnpr.junos >>> jnpr.junos.__version__ '2.7.5'
패키지를 jnpr.junos 성공적으로 가져오면 Junos PyEZ가 Ansible 제어 노드에 설치됩니다. Ansible 모듈을 실행할 때 동일한 오류 메시지가 계속 표시되는 경우 Ansible 환경에서 Python 인터프리터의 올바른 위치를 지정했는지 확인하십시오.
옵션으로 -vvv Ansible 플레이북을 실행하고 로그 메시지를 검토하여 Ansible에서 사용하는 Python 설치를 확인할 수 있습니다.