Ansible 모듈에 대한 Junos PyEZ(junos-eznc) 설치 오류 문제 해결
문제
묘사
모듈을 실행하는 juniper.device
동안 Ansible 제어 노드는 설치되지 않은 오류를 junos-eznc
생성합니다. 예를 들어:
"msg": "junos-eznc (aka PyEZ) >= 2.6.0 is required for this module. However, junos-eznc does not appear to be currently installed. See https://github.com/Juniper/py-junos-eznc#installation for details on installing junos-eznc."
또는
"msg": "junos-eznc is required but does not appear to be installed. It can be installed using `pip install junos-eznc`"
원인
컬렉션의 주니퍼 네트웍스 Ansible 모듈은 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를 설치합니다.
-
예를 들어 Ansible 구성 파일에서 변수를 설정
interpreter_python
하거나 Ansible 인벤토리 파일에서 적절한 디바이스에 대한 변수를 정의ansible_python_interpreter
하여 Python 인터프리터의 경로를 지정합니다.# 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.6.9 (default, Oct 8 2020, 12:12:24) [GCC 8.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> >>> import jnpr.junos >>> jnpr.junos.__version__ '2.6.0'
패키지를 성공적으로 가져오 jnpr.junos
고 오류 메시지가 없으면 Junos PyEZ가 Ansible 제어 노드에 설치됩니다. Ansible 모듈을 실행할 때 동일한 오류 메시지가 계속 표시되면 Ansible 환경에서 Python 인터프리터의 올바른 위치를 지정했는지 확인하십시오.
옵션으로 -vvv
Ansible 플레이북을 실행하고 로그 메시지를 검토하여 Ansible에서 사용하는 Python 설치를 확인할 수 있습니다.