Junos 디바이스 관리 시 Ansible 인증 오류 문제 해결
다음 섹션에서는 Ansible을 사용하여 Junos 디바이스를 관리할 때 발생할 수 있는 인증 오류에 대해 간략하게 설명합니다. 이 섹션에서는 각 오류에 대한 잠재적 원인과 해결 방법도 제시합니다.
ConnectAuthError 문제 해결
문제
묘사
모듈을 실행하는 juniper.device
동안 Ansible 제어 노드는 실패한 인증에 대한 오류를 생성합니다 ConnectAuthError
. 예를 들어:
"msg": "Unable to make a PyEZ connection: ConnectAuthError(dc1a.example.net)"
원인
Junos 디바이스는 다음과 같은 이유로 사용자를 인증하지 못할 수 있습니다.
-
사용자는 Junos 디바이스에 계정이 없습니다.
-
사용자는 Junos 디바이스에 구성된 텍스트 기반 비밀번호가 있는 계정을 가지고 있지만, 모듈을 실행할 때 잘못된 비밀번호가 제공되거나 비밀번호가 제공되지 않습니다.
-
사용자는 SSH 키가 구성된 Junos 디바이스에 계정이 있지만 디바이스 또는 제어 노드에서 SSH 키에 액세스할 수 없습니다.
용액
모듈을 실행하는 사용자가 모든 대상 Junos 디바이스에서 Junos OS 로그인 계정을 가지고 있는지, 계정에 대해 SSH 퍼블릭/프라이빗 키 쌍 또는 텍스트 기반 비밀번호가 구성되어 있는지 확인합니다. SSH 키가 구성된 경우 사용자가 해당 키에 액세스할 수 있는지 확인합니다. 자세한 내용은 Junos 디바이스에서 Ansible 모듈을 실행하는 사용자 인증을 참조하십시오.
속성 conn_type 오류 문제 해결
문제
묘사
Junos 디바이스에서 모듈을 실행하는 juniper.device
동안 Ansible 제어 노드는 다음 오류를 생성합니다.
AttributeError: 'JuniperJunosModule' object has no attribute 'conn_type'
원인
더 이상 사용되지 않는 Juniper.junos
이전 모듈은 사전을 provider
사용하여 연결 및 인증 매개 변수를 정의하는 것을 지원했지만 모듈은 juniper.device
사전 사용을 provider
지원하지 않으며 참조되는 경우 앞서 언급한 오류를 생성합니다.
용액
모듈에 대한 juniper.device
플레이북의 플레이에서 연결 및 인증 매개 변수를 제공하는 경우 Ansible 연결에 적합한 위치에 매개 변수를 정의해야 합니다. 영구 연결(connection: juniper.device.pyez
)의 경우 섹션에서 매개 변수를 vars:
정의합니다. 로컬 연결(connection: local
)의 경우 섹션 아래에 vars:
또는 최상위 모듈 인수로 매개 변수를 정의합니다. 예를 들어:
--- - name: Get device facts hosts: dc1 connection: juniper.device.pyez gather_facts: no vars_prompt: - name: "DEVICE_PASSWORD" prompt: "Device password" private: yes vars: passwd: "{{ DEVICE_PASSWORD }}" tasks: - name: Get device facts juniper.device.facts: savedir: "{{ playbook_dir }}"
--- - name: Get device facts hosts: dc1 connection: local gather_facts: no vars_prompt: - name: "DEVICE_PASSWORD" prompt: "Device password" private: yes tasks: - name: Get device facts juniper.device.facts: passwd: "{{ DEVICE_PASSWORD }}" savedir: "{{ playbook_dir }}"