Junos 디바이스 구성 시 발생하는 Ansible 오류 문제 해결
다음 섹션에서는 모듈을 사용하여 Junos 디바이스를 구성할 때 발생할 수 있는 오류에 juniper.device.config
대해 간략하게 설명합니다. 이 섹션에서는 각 오류에 대한 잠재적 원인과 해결 방법도 제시합니다.
구성 시간 초과 오류 문제 해결
문제
묘사
모듈에서 TimeoutExpiredError
오류 메시지가 생성되고 디바이스 구성을 업데이트하지 못합니다.
ncclient.operations.errors.TimeoutExpiredError: ncclient timed out while waiting for an rpc reply
원인
NETCONF RPC의 시간 초과에 대한 기본 시간은 30초입니다. 대규모 구성 변경이 이 값을 초과하여 구성을 업로드하고 커밋하기 전에 작업 시간이 초과될 수 있습니다.
용액
기본 RPC 시간 제한 간격보다 긴 커밋 시간이 필요할 수 있는 구성 변경을 수용하려면 모듈의 인수를 timeout
적절한 값으로 설정하고 플레이북을 다시 실행합니다.
구성 잠금 오류 문제 해결
문제
묘사
모듈에서 구성 데이터베이스를 잠글 수 없음을 나타내는 오류 메시지를 생성합니다. 예를 들어:
FAILED! => {"changed": false, "msg": "Unable to open the configuration in exclusive mode: LockError(severity: error, bad_element: None, message: configuration database modified)"}
또는
FAILED! => {"changed": false, "msg": "Unable to open the configuration in exclusive mode: LockError(severity: error, bad_element: lock-configuration, message: permission denied)"}
원인
구성 잠금 오류는 다음과 같은 이유로 발생할 수 있습니다.
-
다른 사용자가 구성에 대한 배타적 잠금을 가지고 있습니다.
-
다른 사용자가 구성 데이터베이스를 변경했지만 아직 변경 내용을 커밋하지 않았습니다.
-
Ansible 모듈을 실행하는 사용자에게 디바이스를 구성할 수 있는 권한이 없습니다.
용액
메시지 문자열은 LockError
일반적으로 문제의 근본 원인을 나타냅니다. 다른 사용자가 구성을 수정했거나 구성에 대한 배타적 잠금이 있는 경우 변경 사항이 커밋되거나 잠금이 해제될 때까지 기다렸다가 플레이북을 다시 실행합니다. 사용자에게 디바이스를 구성할 수 있는 권한이 없는 것이 원인인 경우, 필요한 권한이 있는 사용자와 함께 플레이북을 실행하거나, 적절한 경우 현재 사용자에게 변경에 필요한 권한을 주도록 Junos 디바이스를 구성합니다.
구성 로드 오류 문제 해결
문제
묘사
모듈에서 사용 권한이 거부되었기 때문에 구성을 수정할 수 없음을 나타내는 오류 메시지를 생성합니다 ConfigLoadError
.
FAILED! => {"changed": false, "msg": "Failure loading the configuraton: ConfigLoadError(severity: error, bad_element: scripts, message: error: permission denied)"}
원인
Ansible 모듈은 모듈을 실행하는 사용자에게 구성을 수정할 수 있는 권한이 있지만 구성의 요청된 섹션을 변경할 수 있는 권한이 없는 경우 이 오류 메시지를 생성합니다.
용액
이 문제를 해결하려면 필요한 권한이 있는 사용자와 함께 플레이북을 실행하거나, 적절한 경우 현재 사용자에게 변경에 필요한 권한을 부여하도록 Junos 디바이스를 구성합니다.
커밋 오류 문제 해결
문제
묘사
모듈은 구성 잠금 오류로 인해 커밋 작업이 실패했음을 나타내는 오류 메시지를 생성합니다 CommitError
.
FAILED! => {"changed": false, "msg": "Unable to commit configuration: CommitError(edit_path: None, bad_element: None, message: error: remote lock-configuration failed on re0\n\nnote: consider using 'commit synchronize force' to\nterminate remote edit sessions and force the commit)"}
원인
구성 잠금 오류 문제 해결에 설명된 이유로 구성 잠금 오류가 발생할 수 있습니다. 그러나 구성 잠금 실패 메시지는 대신 LockError
의 CommitError
일부로 생성될 수 있습니다. 이러한 상황은 작업이 커밋 검사 및 커밋 작업을 요청하고 커밋 확인 작업이 구성 잠금을 해제하기 전에 디바이스가 커밋 작업을 시작할 때 발생할 수 있습니다.
용액
커밋 작업을 시작하기 전에 디바이스가 커밋 검사 작업을 완료하고 구성 잠금을 해제할 수 있는 충분한 시간을 확보하려면 모듈의 check_commit_wait
매개 변수를 적절한 값으로 설정하고 플레이북을 다시 실행합니다. 이 check_commit_wait
값은 커밋 확인과 커밋 작업 사이에 대기할 시간(초)입니다.
다음 샘플 작업은 커밋 확인과 커밋 작업 사이에 5초 동안 대기합니다.
- name: "Load configuration. Wait 5 seconds between check and commit" juniper.device.config: load: "merge" format: "text" src: "build_conf/{{ inventory_hostname }}/junos.conf" check_commit_wait: 5 comment: "updated using Ansible"