9장. 자동화 컨트롤러의 워크플로우
워크플로우를 사용하면 인벤토리, 플레이북 또는 권한을 공유하거나 공유하지 않을 수 있는 일련의 분산된 작업 템플릿(또는 워크플로우 템플릿)을 구성할 수 있습니다.
워크플로우에는 작업 템플릿과 유사하게
권한이 있습니다. 워크플로우는 릴리스 프로세스에 속한 전체 작업 세트를 단일 단위로 추적하는 작업을 수행합니다.
관리자
및 실행
작업 또는 워크플로우 템플릿은 노드라는 그래프와 같은 구조를 사용하여 함께 연결됩니다. 이러한 노드는 작업, 프로젝트 동기화 또는 인벤토리 동기화일 수 있습니다. 템플릿은 다른 워크플로우의 일부이거나 동일한 워크플로우에서 여러 번 사용할 수 있습니다. 워크플로우를 시작할 때 그래프 구조의 복사본이 워크플로우 작업에 저장됩니다.
다음 예제에서는 세 가지 모두 포함하는 워크플로우와 워크플로우 작업 템플릿을 보여줍니다.

워크플로우가 실행되면 노드의 연결된 템플릿에서 작업이 생성됩니다. 프롬프트 기반 필드(job_type, job_tags, skip_tags, limit)가 있는 작업 템플릿에 연결하는 노드는 해당 필드를 포함할 수 있으며 시작 시 메시지가 표시되지 않습니다. 기본값 없이 인증 정보 또는 인벤토리를 요청하는 작업 템플릿은 워크플로우에 포함할 수 없습니다.
9.1. 워크플로우 시나리오 및 고려 사항
워크플로우를 빌드할 때 다음을 고려하십시오.
- 루트 노드는 기본적으로 항상 설정되어 있으며 편집할 수 없습니다.

- 노드에 상위가 여러 개 있을 수 있으며, 자식은 성공, 실패 또는 항상 상태와 연결될 수 있습니다. 항상 경우 상태는 성공도 실패도 아닙니다. 상태는 워크플로우 작업 템플릿 수준이 아닌 노드 수준에서 적용됩니다. 워크플로우 작업은 취소되거나 오류가 발생하지 않는 한 성공으로 표시됩니다.

- 워크플로우 내에서 작업 또는 워크플로우 템플릿을 제거하면 이전에 삭제된 노드에 연결된 노드가 자동으로 업스트림에 연결되고 다음 예와 같이 에지 유형을 유지합니다.

여러 작업이 하나로 통합되는 통합 워크플로를 사용할 수 있습니다. 이 시나리오에서는 다음 예와 같이 다음 작업이 실행되기 전에 모든 작업 또는 모든 작업을 완료해야 합니다.
- 이 예제에서 자동화 컨트롤러는 처음 두 개의 작업 템플릿을 병렬로 실행합니다. 지정된 대로 둘 다 완료하고 성공하면 세 번째 다운스트림(통합 노드)이 트리거됩니다.
- 워크플로우 작업 템플릿의 워크플로우 노드에 적용되는 인벤토리 및 설문 조사의 프롬프트입니다.
-
API에서 시작하는 경우
get
명령을 실행하면 경고 목록이 표시되고 누락된 구성 요소가 강조 표시됩니다. 다음 이미지는 워크플로우 작업 템플릿의 기본 워크플로우를 보여줍니다.

- 여러 워크플로우를 동시에 시작하고 시작 스케줄을 설정할 수 있습니다. 작업 템플릿과 유사하게 워크플로우에 대한 알림(예: 작업 완료 시)을 설정할 수 있습니다.
작업 분할은 작업 실행을 수평으로 스케일링하기 위한 것입니다.
작업 템플릿에서 작업 분할을 활성화하면 시작 시 구성된 슬라이스 수에 따라 인벤토리를 나눕니다. 그런 다음 각 슬라이스에 대한 작업을 시작합니다.
자세한 내용은 작업 분할 섹션을 참조하십시오.
- 재귀 워크플로를 빌드할 수 있지만 자동화 컨트롤러에서 오류를 감지하면 중첩된 워크플로우가 실행하려고 할 때 중지됩니다.
- 하위 워크플로우에서 작업에 수집된 아티팩트는 다운스트림 노드로 전달됩니다.
- 인벤토리는 워크플로우 수준에서 설정하거나 시작 시 인벤토리를 입력하도록 요청할 수 있습니다.
-
시작된 경우
ask_inventory_on_launch=true
가 있는 워크플로우의 모든 작업 템플릿은 워크플로우 수준 인벤토리를 사용합니다. - 인벤토리를 입력하라는 메시지가 표시되지 않는 작업 템플릿은 워크플로우 인벤토리를 무시하고 자체 인벤토리에 대해 실행합니다.
- 워크플로우에서 인벤토리를 입력하라는 메시지를 표시하는 경우 스케줄 및 기타 워크플로우 노드에서 인벤토리를 제공할 수 있습니다.
-
워크플로우 통합 시나리오에서는
set_stats
데이터가 정의되지 않은 방식으로 병합되므로 고유한 키를 설정해야 합니다.