가능한 무시 오류

Ganeunghan Musi Olyu



다른 호스트 장치에서 작업을 구성하는 동안 Ansible 오류가 자주 발생합니다. 그것들은 독특하고 아마도 중요한 시스템 상태를 나타냅니다. 그럼에도 불구하고 작업이 성공적으로 실행되면 출력을 표시하고 실행하기 위해 피하고 싶은 몇 가지 오류가 있을 수 있습니다. 이 기사에서는 Ansible 오류와 이를 무시하는 방법에 대해 설명합니다. Ansible을 사용하여 실패를 억제하고 무시하는 기술을 구체적으로 시연합니다.

오류 수정과 달리 실패 방지는 Ansible 플레이북의 활동이 영향을 받지 않는 한 작업을 계속하는 것을 수반합니다. ansible 도구는 작업을 디버깅하는 동안 작업이나 플레이북을 완료할 수 없는 경우 경고 메시지를 표시합니다. 여러 가지 원인이 있지만 원인을 식별하고 해결책을 찾는 것은 우리에게 달려 있습니다. 안타깝게도 모든 오류를 수정할 수 있는 것은 아닙니다. 원하지 않거나 문제를 해결할 수 없는 경우 오류를 무시하도록 선택할 수 있습니다.







Ansible에서 관리자를 제어하는 ​​대다수는 실제 시나리오에서 대상 호스트와 연결하는 동안 이 전략을 사용합니다. Ansible은 기본적으로 대상 장치에서 활동을 중단하고 문에서 0이 아닌 결과를 반환하거나 패키지에서 오류를 반환할 때마다 일부 다른 서버에서 활동을 계속합니다. 그러나 다르게 행동하고 싶을 수도 있는 특정 상황이 있습니다. 0이 아닌 반환된 결과는 때때로 진행 상황을 나타냅니다. 종종 모든 호스트에서 중지되도록 한 서버에서 처리를 중지할 수 있습니다.



Ansible에서 오류를 무시하는 방법

Ansible에서는 작업 실패를 표시하는 경우 플레이북 작업을 수행하는 데 다양한 방법이 사용됩니다. 다음은 Ansible에 오류가 표시되는 경우에도 작업을 실행하는 데 도움이 되는 다양한 방법입니다.



1. Ignore_Errors=True 명령 활용





작업이 계속 실패하더라도 활동 하단에 ignore_errors=true 명령을 지정하면 플레이북이 계속 실행됩니다. 작업 완료 또는 실패에 신경을 쓰지만 여전히 후속 작업을 수행합니다. 어떻게든 활동이 실패하면 다음 활동으로 넘어갑니다. 활동이 성공하면 이후 프로세스를 완료합니다.

2. Ansible에서 확인 모드 활용



Ansible의 검사 방법 버전이 사용될 때마다 작업을 우회하거나 작업의 실패를 무시하기 위해 Ansible이 검사 방법에 있을 때 True로 정의되는 부울 특수 변수인 Ansible 검사 모드를 활용합니다.

3. Ansible 플레이북에서 Failed=When 명령 활용

Ansible에서는 각 활동에 대해 암시된 '실패'를 지정하기 위해 failed_when 조건을 활용할 수도 있습니다. 모든 Ansible 조건문과 마찬가지로 수많은 failed_when 기준 목록이 암시적으로 결합됩니다. 따라서 모든 조건이 충족되는 경우에만 작업이 실패합니다.

Ansible에서 오류를 무시하기 위한 전제 조건

Ansible 구성 도구는 구체적인 예를 포함하는 데 필요한 기준을 준수해야 합니다.

  • 대상 장치에서 명령을 구성하려면 Ansible 주 서버 또는 제어 서버가 필요하다고 말할 수 있습니다.
  • Ansible 소프트웨어의 오류를 무시하는 다양한 방법을 사용하기 위해 각 호스트에 연락할 수 있도록 로컬 호스트가 있어야 합니다. 활동 기간 동안 이 인스턴스의 로컬 호스트를 대상 원격 서버로 사용합니다.
  • 우리는 플레이북을 작성하고, Ansible 무시 오류 명령을 실행하고, ansible-controller 장치를 사용하여 멀리 떨어진 호스트의 결과를 추적합니다.

학습자가 Ansible 플레이북에서 무시 오류를 활용하는 원리를 이해하도록 돕기 위해 다음 예를 구현해 보겠습니다.

예: Ignore_Errors=True 명령 활용

이것은 플레이북에 여러 작업을 포함하고 ignore error 명령을 사용하여 작업을 실행하는 구현을 위해 Ansible을 사용하는 가장 간단한 예입니다. 이를 위해 먼저 Ansible 터미널에 다음 코드를 작성합니다.

[ 뿌리 @ 마스터 앤서블 ] # 나노 ignore_errors.yml

ignore_errors.yml 플레이북을 만들고 실행한 후 이제 플레이북에 명령을 입력하기 시작합니다. 먼저 'hosts' 옵션을 사용하여 제공된 호스트를 'localhost'로 전달합니다. 플레이북을 실행할 때 로컬 호스트에 대한 추가 정보를 얻을 수 없도록 '사실 수집' 인수에 'false' 값을 입력합니다.

그런 다음 '작업' 옵션에서 완료하려는 각 작업을 나열하기 시작합니다. 첫 번째 작업에서는 Ansible 디렉토리에 존재하지 않는 문서를 표시합니다. 먼저 구현하려는 작업의 제목을 전달합니다. 그런 다음 명령 옵션을 사용하여 존재하지 않는 텍스트 문서를 저장하고 'ls'를 사용하여 첫 번째 작업에서 명령을 실행할 수 있습니다. 첫 번째 작업 이후에 ignore_errors=true 명령을 사용하여 ignore 문 위의 작업이 실패하면 해당 작업을 무시하고 다음 작업으로 이동하여 실행하도록 합니다.

사용되는 다른 작업을 나열합니다. 첫 번째 작업이 실패하면 Ansible 도구는 다음 작업을 실행해야 합니다. 그런 다음 디버그 매개변수를 사용하여 플레이북에서 작업을 실행합니다.

- 호스트: 로컬 호스트
수집_사실: 거짓
작업:
- name: 존재하지 않는 것을 나열 파일
명령: ls 존재하지 않는.txt
무시_오류: 진실

- 이름: 계속하다 실패 후 과제
디버그:
메시지: '실패 후 작업 계속'

이제 실행할 충분한 작업을 나열하고 오류 무시 명령을 확인합니다. 이제 플레이북을 종료하고 기본 터미널로 돌아갑니다. 그런 다음 플레이북을 실행합니다. 이를 위해 다음 진술을 사용합니다.

[ 뿌리 @ 마스터 앤서블 ] # ansible-플레이북 ignore_errors.yml

앞서 언급한 명령을 실행하면 다음과 같은 결과가 나타납니다. 보시다시피 존재하지 않는 파일을 나열하는 첫 번째 작업은 실패를 표시합니다. 하지만 두 번째 작업은 플레이북에서 ignore_error=true를 활용하여 첫 번째 작업을 무시했기 때문에 성공적으로 실행됩니다.

결론

Ansible에서 무시 오류의 의미를 배웠습니다. Ansible 플레이북에서 어떻게 작동하는지 논의했습니다. 또한 작업을 실행하는 동안 Ansible에서 오류를 무시하는 다양한 방법에 대해서도 논의했습니다. 모든 개념이 사용자에게 명확하도록 예제를 구현했습니다.