6장. Jobs
작업 문제를 해결합니다.
6.1. 문제 - "오류!에서 모듈/작업을 해결할 수 없음 오류 메시지로 작업이 실패합니다. 링크 복사링크가 클립보드에 복사되었습니다!
"ERROR! could't resolve module/action 'module name'이라는 오류 메시지와 함께 작업이 실패합니다. 이는 종종 철자가 잘못되었거나, 컬렉션이 없거나, 잘못된 모듈 경로를 나타냅니다.
이 오류는 모듈과 연결된 컬렉션이 실행 환경에서 누락된 경우 발생할 수 있습니다.
권장되는 해결 방법은 사용자 정의 실행 환경을 만들고 해당 실행 환경 내에 필요한 컬렉션을 추가하는 것입니다. 실행 환경 생성에 대한 자세한 내용은 실행 환경 생성 및 사용에 Ansible 빌더 사용을 참조하십시오.
또는 다음 단계를 완료할 수 있습니다.
프로세스
-
프로젝트 리포지토리 내에
컬렉션폴더를 생성합니다. collections폴더 내에requirements.yml파일을 추가하고 컬렉션을 추가합니다.collections: - <collection_name>
collections: - <collection_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow = issue - "Timeout (12s) waiting for privilege escalation prompt" 오류 메시지와 함께 작업이 실패합니다.
이 오류는 시간 초과 값이 너무 작으면 작업이 완료되기 전에 중지될 때 발생할 수 있습니다. 연결 플러그인의 기본 시간 초과 값은 10 입니다.
문제를 해결하려면 다음 방법 중 하나를 완료하여 시간 초과 값을 늘립니다.
다음 변경 사항은 자동화 컨트롤러의 모든 작업에 영향을 미칩니다. 특정 프로젝트에 시간 초과 값을 사용하려면 프로젝트 디렉터리의 루트에 ansible.cfg 파일을 추가하고 timeout 매개 변수 값을 해당 ansible.cfg 파일에 추가합니다.
자동화 컨트롤러 UI에서 ANSIBLE_TIMEOUT을 환경 변수로 추가
- 자동화 컨트롤러로 이동합니다.
-
탐색 패널에서
를 선택합니다. 추가 환경 변수 에서 다음을 추가합니다.
{ "ANSIBLE_TIMEOUT": 60 }{ "ANSIBLE_TIMEOUT": 60 }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
CLI를 사용하여 ansible.cfg 파일의 [defaults] 섹션에 시간 초과 값을 추가합니다.
/etc/ansible/ansible.cfg파일을 편집하고 다음을 추가합니다.[defaults] timeout = 60
[defaults] timeout = 60Copy to Clipboard Copied! Toggle word wrap Toggle overflow
시간 초과를 사용하여 임시 명령 실행
명령줄에서 애드혹 플레이북을 실행하려면
ansible-playbook명령에--timeout플래그를 추가합니다. 예를 들면 다음과 같습니다.ansible-playbook --timeout=60 <your_playbook.yml>
# ansible-playbook --timeout=60 <your_playbook.yml>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.1. 문제 - 자동화 컨트롤러의 작업이 보류 중 상태로 유지됨 링크 복사링크가 클립보드에 복사되었습니다!
자동화 컨트롤러에서 작업을 시작한 후에는 작업이 보류 중 상태로 유지되며 시작되지 않습니다.
작업이 보류 중 상태에서 중단될 수 있는 몇 가지 이유가 있습니다. 이 문제 해결에 대한 자세한 내용은 자동화 실행 구성에 Playbook이 보류 중 상태로 유지 됨을참조하십시오.
보류 중인 모든 작업 취소
다음 명령을 실행하여 보류 중인 모든 작업을 나열합니다.
awx-manage shell_plus
# awx-manage shell_plusCopy to Clipboard Copied! Toggle word wrap Toggle overflow >>> UnifiedJob.objects.filter(status='pending')
>>> UnifiedJob.objects.filter(status='pending')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 보류 중인 모든 작업을 취소합니다.
>>> UnifiedJob.objects.filter(status='pending').update(status='canceled')
>>> UnifiedJob.objects.filter(status='pending').update(status='canceled')Copy to Clipboard Copied! Toggle word wrap Toggle overflow
작업 ID를 사용하여 단일 작업 취소
특정 작업을 취소하려면 다음 명령을 실행하여 <
job_id>를 취소할 작업 ID로 교체합니다.awx-manage shell_plus
# awx-manage shell_plusCopy to Clipboard Copied! Toggle word wrap Toggle overflow >>> UnifiedJob.objects.filter(id=_<job_id>_).update(status='canceled')
>>> UnifiedJob.objects.filter(id=_<job_id>_).update(status='canceled')Copy to Clipboard Copied! Toggle word wrap Toggle overflow
프라이빗 자동화 허브에서 실행 환경을 사용할 때 "denied: requested access to the resource is denied, unauthorized: Insufficient permissions" 오류 메시지와 함께 작업이 실패합니다.
이 문제는 프라이빗 자동화 허브가 암호 또는 토큰으로 보호되고 레지스트리 인증 정보가 실행 환경에 할당되지 않은 경우 발생합니다.
프로세스
- 자동화 컨트롤러로 이동합니다.
-
탐색 패널에서
선택합니다. - 실패한 작업 템플릿에 할당된 실행 환경을 클릭합니다.
- 클릭합니다.
- 프라이빗 자동화 허브의 적절한 레지스트리 인증 정보를 실행 환경에 할당합니다.