Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos 디바이스 관리 시 Ansible 연결 오류 문제 해결

다음 섹션에서는 Ansible을 사용하여 Junos 디바이스를 관리할 때 발생할 수 있는 연결 오류에 대해 간략하게 설명합니다. 이 섹션에서는 각 오류에 대한 잠재적인 원인과 해결 방법도 제시합니다.

연결 실패, 알 수 없는 명령 또는 인터프리터를 찾을 수 없음 오류 문제 해결

문제

설명

컬렉션의 juniper.device 모듈 또는 junipernetworks.junos 모듈을 실행 juniper.device 하면 Ansible 제어 노드는 연결 실패, 알 수 없는 명령 또는 Python 인터프리터를 찾을 수 없다는 오류를 생성합니다. 예를 들면 다음과 같습니다.

또는

또는

원인

이러한 오류는 Ansible 제어 노드가 모듈을 로컬에서 실행하지 않을 때 발생할 수 있습니다.

일반적으로 Ansible에는 관리 노드에서 Python이 필요합니다. Ansible 제어 노드는 모듈을 노드로 전송하여 실행된 다음 제거합니다. 모듈은 Junos XML API 및 NETCONF를 사용하여 디바이스와 인터페이스하기 때문에 모듈은 juniper.device 매니지드 디바이스에서 Python이 필요하지 않습니다. 따라서 Junos 디바이스에서 작업을 수행하려면 Python이 설치된 Ansible 제어 노드에서 모듈을 로컬로 실행해야 합니다. Ansible이 Junos 디바이스에서 직접 모듈을 실행하려고 하면 오류가 발생합니다.

해결책

Ansible 제어 노드가 모듈을 로컬에서 실행하도록 지시하려면 모듈 세트에 대한 적절한 연결 매개변수를 정의해야 합니다. 인벤토리 파일, 호스트 또는 그룹 변수 파일, 플레이북 또는 명령줄 인수와 같은 다양한 위치에서 파라미터를 정의할 수 있습니다. 연결 유형은 선택한 모듈 세트에 따라 다르며, 경우에 따라 개별 모듈에 따라 다릅니다. 자세한 정보는 다음을 참조하십시오.

알 수 없는 호스트 오류 문제 해결

문제

설명

컬렉션의 juniper.device 모듈 또는 junipernetworks.junos 모듈을 실행 juniper.device 하면 Ansible 제어 노드가 알 수 없는 호스트, 호스트 패턴 또는 주소에 대한 오류를 생성합니다.

또는

또는

원인

이러한 오류는 Ansible 인벤토리 파일이 호스트를 정의하지 않거나 Ansible 제어 노드가 호스트 이름을 확인할 수 없는 경우에 발생합니다.

직접 또는 플레이북에서 Ansible 모듈을 실행할 때 모듈 인수 또는 플레이북에서 참조되는 모든 호스트를 Ansible 인벤토리 파일에 정의해야 합니다. 인벤토리 파일의 기본 위치는 /etc/ansible/hosts 입니다. Ansible 제어 노드는 인벤토리 파일에서 정의하는 모든 호스트의 호스트 이름을 확인할 수 있어야 합니다.

해결책

누락된 호스트를 포함하도록 Ansible 인벤토리 파일을 업데이트하고 DNS 확인이 올바르게 작동하는지 확인합니다.

Ansible 인벤토리 파일에 대한 자세한 내용은 Junos 디바이스 관리 시 Ansible 인벤토리 파일 이해https://www.ansible.com/ 의 공식 Ansible 설명서를 참조하십시오.

거부된 연결 오류 및 소켓 오류 문제 해결

문제

설명

컬렉션의 모듈 또는 junipernetworks.junos 모듈을 실행 juniper.device 하면 Ansible 제어 노드가 오류 또는 소켓 오류를 생성합니다ConnectRefusedError.juniper.device 예를 들면 다음과 같습니다.

또는

원인

이러한 오류의 가장 가능성 있는 원인은 SSH를 통한 NETCONF가 Junos 디바이스에서 활성화되지 않았기 때문입니다.

NETCONF가 활성화되었는지 빠르게 테스트하려면 Ansible 모듈을 실행하는 사용자 계정이 디바이스와의 NETCONF 세션을 성공적으로 시작할 수 있는지 확인합니다.

사용자가 기본 NETCONF 포트(830) 또는 디바이스의 NETCONF를 위해 특별히 구성된 포트에서 디바이스와의 NETCONF 세션을 성공적으로 설정할 수 있는 경우 NETCONF가 활성화됩니다. 그렇지 않으면 디바이스에서 SSH를 통한 NETCONF를 활성화해야 합니다.

해결책

Junos 디바이스에서 NETCONF-over-SSH 서비스를 활성화합니다.

호스트 네트워크 OS 오류 문제 해결

문제

설명

컬렉션( 모듈)juniper.device.junos_*에서 juniper.device 모듈을 실행 junipernetworks.junos 하면 Ansible 제어 노드에서 오류가 발생합니다host network os. 예를 들면 다음과 같습니다.

원인

모듈에서는 juniper.device.junos_* Junos OS를 실행하는 대상 호스트 또는 Junos OS Evolved를 실행하는 대상 호스트에 대해 juniper.device.junos Ansible 네트워크 OS를 지정해야 합니다.

해결책

환경에 적합한 위치와 파일 형식에 필요한 구문으로 변수를 정의 ansible_network_os 합니다. 예를 들어, 인벤토리 파일이나 호스트 또는 그룹 변수 파일에서 변수를 정의할 수 있습니다.

다음 샘플 INI 형식의 인벤토리 파일은 인벤토리 그룹의 junos 호스트에 대해 juniper.device.junos Ansible 네트워크 OS를 정의합니다.