:term:`sliced job`은 분산 작업의 개념을 나타냅니다. 분산 작업은 매우 많은 호스트에서 작업을 실행하는 데 사용되며, 이 작업을 사용하면 클러스터 전체에서 병렬로 스케줄링할 수 있는 여러 개의 ansible-playbook을 인벤토리 하위 집합에서 각각 실행할 수 있습니다.
기본적으로 Ansible은 단일 제어 인스턴스의 작업을 실행합니다. 호스트 간 오케스트레이션이 필요하지 않은 작업의 경우 작업 분할은 |at|의 기능을 활용하여 클러스터의 여러 노드에 작업을 분산합니다. 작업 분할은 Ansible 실행을 분할할 작업 수를 지정하는 작업 템플릿 필드 ``job_slice_count``를 추가하여 작동합니다. 이 숫자가 1보다 크면 |at|는 작업이 아닌 작업 템플릿에서 워크플로우를 생성합니다. 인벤토리는 슬라이스 작업에 균등하게 배포됩니다. 그러면 워크플로우 작업이 시작되고 일반 워크플로우처럼 진행됩니다. 작업을 시작하면 API에서 작업 리소스(``job_slice_count = 1``인 경우) 또는 워크플로우 작업 리소스를 반환합니다. 해당 사용자 인터페이스는 실행 상태를 표시하기 위해 적절한 화면으로 리디렉션됩니다.
작업 슬라이스를 설정할 때는 다음을 고려해야 합니다.
분할된 작업은 워크플로우 작업을 생성한 후 작업을 생성합니다.
작업 슬라이스는 작업 템플릿, 인벤토리, 슬라이스 수로 구성됩니다.
실행하면 분할된 작업에서 각 인벤토리를 여러 개의 “슬라이스 크기” 청크로 분할합니다. 그런 다음 적절한 인벤토리의 각 청크에서 ansible-playbook 실행 작업을 대기열에 넣습니다. ansible-playbook에 제공된 인벤토리는 해당 특정 슬라이스의 호스트만 포함하는 원래 인벤토리의 축소된 버전입니다. 작업 목록에 표시되는 완료된 분할된 작업에는 실행된 분할 작업 수로 적절하게 레이블이 지정됩니다.
이러한 분할된 작업은 일반 스케줄링 동작(포크 수, 용량으로 인한 대기, 인벤토리 매핑을 기반으로 인스턴스 그룹에 할당)을 따릅니다.
참고
작업 분할은 작업 실행을 수평으로 스케일링하기 위한 것입니다. 작업 템플릿에 분할하면 시작 시 구성된 슬라이스 수에 따라 인벤토리가 분할된 다음 각 슬라이스에 대한 작업이 시작됩니다.
슬라이스 수가 컨트롤러 노드 수보다 크거나 같을 것으로 예상됩니다. 작업 스케줄러가 수천 개의 워크플로우 노드를 동시에 예약하도록 설계되지 않으므로 작업 슬라이스 수가 매우 많은 작업 슬라이스(예: 수천)를 설정하면 분할된 작업이 생성되는 작업 스케줄러를 동시에 예약하도록 설계되지 않으므로 성능이 저하될 수 있습니다.
프롬프트 및/또는 추가 변수가 있는 분할된 작업 템플릿은 표준 작업 템플릿과 동일하게 동작하여 모든 변수 및 제한을 결과 워크플로우 작업의 전체 슬라이스 작업 세트에 적용합니다. 그러나 분할된 작업에 제한을 전달할 때 이 제한으로 인해 호스트가 할당되지 않으면 해당 슬라이스가 실패하고 전체 작업이 실패합니다.
분산된 작업의 작업 슬라이스 작업 상태는 워크플로우 작업과 동일한 방식으로 계산됩니다. 하위 작업에 처리되지 않은 오류가 있는 경우 실패합니다.
경고
(개별 호스트에 변경 사항만 적용하는 대신) 호스트 간 오케스트레이션을 수행하려는 작업은 분할된 작업으로 구성되어서는 안 됩니다. 이 경우 작업이 실패할 수 있으며 |at|에서 슬라이스 작업으로 실행 시 실패하는 플레이북을 검색하거나 고려하지 않습니다.
분할된 작업은 모든 노드에서 실행할 수 있고 일부는 동시에 실행되지 않을 수 있습니다(예: 시스템의 용량 부족). 슬라이스 작업이 실행 중인 경우 작업 세부 정보에 현재 실행 중인 워크플로우 및 작업 슬라이스와 세부 정보를 개별적으로 볼 수 있는 링크가 표시됩니다.
기본적으로 작업 템플릿은 일반적으로 동시에 실행되도록 구성되어 있지 않습니다(API에서 allow_simultaneous
또는 UI에서 **동시 작업 활성화**를 선택해야 함). 분할 작업은 이 동작을 덮어쓰고 해당 설정이 선택되지 않은 경우에도 ``allow_simultaneous``를 의미합니다. :ref:`ug_JobTemplates`에서 이 동작을 지정하는 방법에 대한 자세한 내용과 작업 템플릿 구성의 작업 슬라이스 수를 참조하십시오.
작업 템플릿 섹션에는 사용자 인터페이스에서 다음 작업을 수행하는 방법에 대한 추가 세부 정보가 있습니다.
슬라이스 번호가 1보다 큰 작업 템플릿을 사용하여 워크플로우 작업 시작
슬라이스 작업 템플릿을 시작한 후 전체 워크플로우 또는 개별 작업 취소
슬라이스 작업의 실행을 완료한 후 전체 워크플로우 또는 개별 작업 다시 시작
작업 템플릿을 시작한 후 워크플로우 및 슬라이스 작업의 세부 정보 보기
슬라이스 작업을 생성한 후 구체적으로 검색(다음 섹션인 작업 슬라이스 검색 참조)
슬라이스 작업을 더 쉽게 찾으려면 검색 기능을 사용하여 다음 목록에 검색 필터를 적용합니다.
슬라이스 작업만 표시하는 작업 목록
작업 슬라이스의 상위 워크플로우 작업만 표시하는 작업 목록
슬라이스 작업을 생성하는 작업 템플릿만 표시하는 작업 템플릿 목록
대부분의 경우처럼 작업 목록에 슬라이스 작업만 표시하려면 해당 유형(여기 있는 작업) 또는 ``unified_jobs``에서 필터링할 수 있습니다.
/api/v2/jobs/?job_slice_count__gt=1
작업 슬라이스의 상위 워크플로우 작업만 표시하려면 다음을 실행합니다.
/api/v2/workflow_jobs/?job_template__isnull=false
슬라이스 작업을 생성하는 작업 템플릿만 표시하려면 다음을 실행합니다.
/api/v2/job_templates/?job_slice_count__gt=1