6장. 작업 템플릿
템플릿에서 작업 템플릿과 워크플로우 작업 템플릿을 둘 다 생성할 수 있습니다.
워크플로우 작업 템플릿은 워크플로우 작업 템플릿을 참조하십시오.
작업 템플릿은 Ansible 작업을 실행하기 위한 매개 변수 정의 및 집합입니다. 작업 템플릿은 동일한 작업을 여러 번 실행하는 데 유용합니다. 또한 Ansible Playbook 콘텐츠의 재사용과 팀 간 협업을 권장합니다.
템플릿 페이지에는 현재 사용 가능한 작업 템플릿과 워크플로우 작업 템플릿이 모두 표시됩니다. 기본 뷰는 접혀 있으며(콤팩트) 템플릿 이름, 템플릿 유형 및 해당 템플릿을 사용하여 실행된 마지막 작업의 타임스탬프를 표시합니다. 각 항목 옆에 있는 화살표 아이콘을 클릭하여 확장 및 자세한 정보를 볼 수 있습니다. 이 목록은 이름에 따라 알파벳순으로 정렬되지만 다른 기준에 따라 정렬하거나 템플릿의 다양한 필드 및 속성으로 검색할 수 있습니다.
이 화면에서 를 시작하고, 를 편집하고, 을 복사하고, 작업 템플릿을 삭제할 수 있습니다.
워크플로우 템플릿에는 워크플로우 편집기에 액세스하기 위한 바로 가기로 워크플로우 시각화 프로그램 아이콘이 있습니다.
작업 템플릿을 사용하여 워크플로우 템플릿을 빌드할 수 있습니다. 옆에 워크플로우 시각화 도구 아이콘이 표시되는 템플릿은 워크플로우 템플릿입니다. 아이콘을 클릭하면 워크플로우를 그래픽으로 빌드할 수 있습니다. 작업 템플릿의 다양한 매개변수를 사용하면 워크플로우 수준에서 변경할 수 있는 시작 시 프롬프트 를 선택할 수 있으며 작업 템플릿 수준에서 할당된 값에는 영향을 미치지 않습니다. 자세한 내용은 워크플로우 시각화 도구 섹션을 참조하십시오.
6.1. 작업 템플릿 생성
프로세스
-
탐색 패널에서
선택합니다. - 템플릿 페이지의 템플릿 생성 목록에서 작업 템플릿 생성 을 선택합니다.
다음 필드에 적절한 세부 정보를 입력합니다.
참고필드에 시작 시 프롬프트 확인란이 선택되어 있으면 시작 시 해당 필드의 값을 입력하라는 메시지가 표시됩니다.
대부분의 프롬프트 값은 작업 템플릿에 설정된 모든 값을 재정의합니다.
다음 표에는 예외가 설명되어 있습니다.
필드 옵션 시작 시 프롬프트 이름
작업의 이름을 입력합니다.
해당 없음
설명
임의의 설명을 적절하게 입력합니다(선택 사항).
해당 없음
작업 유형
작업 유형 선택:
- run: 시작 시 플레이북을 시작하여 선택한 호스트에서 Ansible 작업을 실행합니다.
- 확인: 플레이북의 "시험 실행"을 수행하고 실제로 변경하지 않고 변경 사항을 보고합니다. 검사 모드를 지원하지 않는 작업은 누락되어 잠재적인 변경 사항을 보고하지 않습니다.
작업 유형에 대한 자세한 내용은 Ansible 문서의 플레이북 섹션을 참조하십시오.
제공됨
인벤토리
로그인한 사용자에게 제공되는 인벤토리에서 이 작업 템플릿에 사용할 인벤토리를 선택합니다.
시스템 관리자는 작업 템플릿에서 특정 인벤토리를 사용할 수 있도록 사용자 또는 팀 권한을 부여해야 합니다.
제공됨
인벤토리 프롬프트는 이후 프롬프트 창에 자체 단계로 표시됩니다.
프로젝트
로그인한 사용자에게 제공되는 프로젝트에서 이 작업 템플릿에 사용할 프로젝트를 선택합니다.
해당 없음
소스 제어 분기
이 필드는 분기 덮어쓰기를 허용하는 프로젝트를 선택한 경우에만 표시됩니다. 작업 실행에 사용할 덮어쓰기 분기를 지정합니다. 비워 두는 경우 프로젝트의 지정된 SCM 분기(또는 커밋 해시나 태그)가 사용됩니다.
자세한 내용은 작업 분기 덮어쓰기를 참조하십시오.
제공됨
실행 환경
이 작업을 실행하는 데 사용할 컨테이너 이미지를 선택합니다. 실행 환경을 선택하기 전에 프로젝트를 선택해야 합니다.
제공됨
실행 환경 프롬프트는 이후 프롬프트 창에 자체 단계로 표시됩니다.
Playbook
사용 가능한 플레이북에서 이 작업 템플릿으로 시작할 플레이북을 선택합니다. 이 필드는 선택한 프로젝트의 프로젝트 기본 경로에 있는 플레이북 이름으로 자동으로 채워집니다. 또는 목록에 없는 경우 해당 플레이북으로 실행하는 데 사용할 파일 이름(예: foo.yml)과 같이 플레이북 이름을 입력할 수 있습니다. 유효하지 않은 파일 이름을 입력하면 템플릿에 오류가 표시되거나 작업이 실패합니다.
해당 없음
인증 정보
아이콘을 선택하여 별도의 창을 엽니다.
사용 가능한 옵션에서 이 작업 템플릿에 사용할 인증 정보를 선택합니다.
목록이 긴 경우 드롭다운 메뉴 목록을 사용하여 인증 정보 유형으로 필터링합니다. 일부 인증 정보 유형은 특정 작업 템플릿에 적용되지 않기 때문에 나열되지 않습니다.
- 선택하는 경우 기본 인증 정보가 있는 작업 템플릿을 시작하고 다른 인증 정보를 제공할 때 동일한 유형인 경우 기본 인증 정보를 대체합니다. 다음은 이 메시지의 예입니다.
작업 템플릿 기본 인증 정보는 동일한 유형 중 하나로 교체해야 합니다. 계속하려면 다음 유형의 인증 정보를 선택하십시오.
- 적합한 인증 정보를 더 추가할 수 있습니다.
- 인증 정보 프롬프트는 이후 프롬프트 창에 자체 단계로 표시됩니다.
라벨
-
선택적으로
dev
또는test
와 같은 이 작업 템플릿을 설명하는 레이블을 제공합니다. - 라벨을 사용하여 디스플레이에서 작업 템플릿 및 완료된 작업을 그룹화하고 필터링합니다.
- 레이블은 작업 템플릿에 추가할 때 생성됩니다. 레이블은 작업 템플릿에 제공되는 프로젝트를 사용하여 단일 조직과 연결됩니다. 조직 멤버는 편집 권한이 있는 경우(예: 관리자 역할) 작업 템플릿에 레이블을 생성할 수 있습니다.
- 작업 템플릿을 저장하면 확장된 보기의 작업 템플릿 개요에 레이블이 표시됩니다.
- 제거하려면 레이블 옆에 있는 를 선택합니다. 레이블이 제거되면 해당 특정 작업 또는 작업 템플릿과 더 이상 연결되지 않지만 이를 참조하는 다른 작업과 연결된 상태로 유지됩니다.
- 작업은 시작 시 작업 템플릿에서 레이블을 가져옵니다. 작업 템플릿에서 레이블을 삭제하면 작업에서도 삭제됩니다.
- 선택하는 경우 기본값을 제공해도 필요한 경우 추가 레이블을 제공하도록 시작할 때 메시지가 표시됩니다.
- 를 선택하면 기존 레이블을 삭제할 수 없으며 기존 기본 레이블이 아닌 새로 추가된 라벨만 제거됩니다.
포크
플레이북을 실행하는 동안 사용할 병렬 또는 동시 프로세스 수입니다. 값이 0이면
/etc/ansible/ansible.cfg
에서 덮어쓰지 않는 한 Ansible 기본 설정인 병렬 프로세스 5개가 사용됩니다.제공됨
제한
플레이북에서 관리하거나 영향을 주는 호스트 목록을 추가로 제한하는 호스트 패턴입니다. 콜론(:)으로 많은 패턴을 분리할 수 있습니다. 핵심 Ansible과 마찬가지로:
- A:b는 "그룹 a 또는 b"를 의미합니다.
- A:b:&c는 "a 또는 b에 있지만 c에 있어야 함"를 의미합니다.
- A:!b는 "a에 있고 b에는 분명히 없음"을 의미합니다.
자세한 내용은 Ansible 문서의 Patterns: Target hosts and groups 를 참조하십시오.
제공됨
선택하지 않은 경우 작업 템플릿은 인벤토리의 모든 노드에 대해 실행되거나 Limit 필드에 사전 정의된 노드만 실행합니다. 워크플로우의 일부로 실행하면 워크플로우 작업 템플릿 제한이 대신 사용됩니다.
상세 정보
플레이북을 실행할 때 Ansible에서 생성하는 출력 수준을 제어합니다. 일반에서 다양한 상세 정보 표시까지 중에서 또는 디버그 설정에서 세부 정보 표시를 선택합니다. 이는 세부 정보 보고서 뷰에만 표시됩니다. 상세 로깅에는 모든 명령 출력이 포함됩니다. 디버그 로깅은 매우 상세하며 특정 지원 인스턴스에서 유용할 수 있는 SSH 작업에 대한 정보를 포함합니다.
상세 정보 표시
5
로 인해 작업이 실행 중일 때 자동화 컨트롤러가 크게 차단되므로 작업이 완료되었음을 보고가 지연될 수 있으며 브라우저 탭이 잠길 수 있습니다.제공됨
작업 분할
이 작업 템플릿을 실행할 슬라이스 수를 지정합니다. 각 슬라이스는 인벤토리 일부에 대해 동일한 작업을 실행합니다. 작업 슬라이스에 대한 자세한 내용은 작업 분할 을 참조하십시오.
제공됨
Timeout
이를 통해 작업이 취소되기 전에 작업을 실행할 수 있는 시간(초)을 지정할 수 있습니다. 시간 초과 값을 설정하려면 다음을 고려하십시오.
- 설정에 정의된 글로벌 시간 초과가 0으로 지정되어 있으며 시간 초과가 없음을 나타냅니다.
- 작업 템플릿의 음수 시간 초과(<0)는 작업에 대한 실제 "시간 초과 없음"입니다.
- 작업 템플릿의 시간 초과는 기본적으로 작업을 글로벌 시간 초과(기본적으로 시간 초과)로 설정합니다.
- 시간 초과가 양수이면 해당 작업 템플릿의 시간 초과가 설정됩니다.
제공됨
변경 사항 표시
Ansible 작업에서 변경한 내용을 볼 수 있습니다.
제공됨
인스턴스 그룹
이 작업 템플릿 과 연결할 인스턴스 및 컨테이너 그룹을 선택합니다. 목록이 긴 경우 아이콘을 사용하여 옵션 범위를 좁힙니다. 작업 템플릿 인스턴스 그룹은 작업 스케줄링 기준에 기여하고 작업 런타임 동작 및 규칙에 대한 작업이 실행되는 위치를 제어 합니다. 시스템 관리자는 작업 템플릿에서 인스턴스 그룹을 사용할 수 있도록 사용자 또는 팀 권한을 부여해야 합니다. 컨테이너 그룹을 사용하려면 admin 권한이 필요합니다.
- 제공됨
선택하는 경우 기본 설정 순서대로 작업을 선호하는 인스턴스 그룹을 제공합니다. 첫 번째 그룹이 용량이 부족하면 해당 그룹이 작업을 실행하도록 선택한 시점에 용량이 있는 그룹을 사용할 수 있을 때까지 목록의 이후 그룹이 고려됩니다.
- 인스턴스 그룹을 입력하라는 메시지가 표시되면 일반 인스턴스 그룹 계층 구조를 입력하고 조직의 모든 및 인벤토리 인스턴스 그룹을 덮어씁니다.
- 인스턴스 그룹 프롬프트는 이후 프롬프트 창에 자체 단계로 표시됩니다.
작업 태그
를 입력하고 Create 메뉴를 선택하여 실행해야 하는 플레이북의 부분을 지정합니다. 자세한 내용 및 예제는 Ansible 문서의 태그 를 참조하십시오.
제공됨
건너뛰기 태그
를 입력하고 Create 메뉴를 선택하여 건너뛸 플레이북의 특정 작업 또는 일부를 지정합니다. 자세한 내용 및 예제는 Ansible 문서의 태그 를 참조하십시오.
제공됨
추가 변수
- 플레이북에 추가 명령행 변수를 전달합니다. 이는 런타임 시 변수 정의 의 Ansible 문서에 설명되어 있는 ansible-playbook의 "-e" 또는 "-extra-vars" 명령줄 매개변수입니다.
-
YAML 또는 JSON을 사용하여 키 또는 값 쌍을 지정합니다. 이러한 변수에는 우선순위 최대값이 있으며 다른 위치에 지정된 다른 변수를 덮어씁니다. 다음은
git_branch: production release_version: 1.5
의 예입니다.
제공됨
일정에
extra_vars
를 지정하려면 작업 템플릿에서 변수 시작 시 프롬프트 를 선택하거나 작업 템플릿에서 설문 조사를 활성화해야 합니다. 답변된 설문 조사 질문이extra_vars
가 됩니다.필요한 경우 이 템플릿을 시작하기 위해 다음 옵션을 설정할 수 있습니다.
-
권한 에스컬레이션: 이 플레이북을 선택하면 관리자로 실행되도록 합니다.
--become
옵션을ansible-playbook
명령에 전달하는 것과 동일합니다. - provisioning 콜백: 이 옵션을 선택하면 호스트에서 REST API를 통해 자동화 컨트롤러로 다시 호출하고 이 작업 템플릿에서 작업을 시작할 수 있습니다. 자세한 내용은 프로비저닝 콜백을 참조하십시오.
Webhook 활성화: 이 옵션을 선택하면 작업 템플릿을 시작하는 데 사용되는 사전 정의된 SCM 시스템 웹 서비스와 연결하는 기능을 켭니다. GitHub 및 GitLab은 지원되는 SCM 시스템입니다.
- Webhook를 활성화하면 다른 필드가 표시되면서 추가 정보를 요청합니다.
- Webhook 서비스: Webhook에서 수신 대기할 서비스를 선택합니다.
- Webhook URL: 요청을 POST하는 Webhook 서비스의 URL이 자동으로 채워집니다.
- Webhook 키: Webhook 서비스에서 자동화 컨트롤러로 전송된 페이로드에 서명하는 데 사용할 공유 시크릿을 생성합니다. 자동화 컨트롤러에서 이 서비스의 Webhook를 수락하려면 Webhook 서비스의 설정에서 이를 구성해야 합니다.
Webhook 인증 정보: 필요한 경우 Webhook 서비스로 상태 업데이트를 다시 보내는 데 사용할 인증 정보로 GitHub 또는 GitLab PAT(개인 액세스 토큰)을 제공합니다.
인증 정보를 선택하려면 인증 정보가 있어야 합니다.
하나를 생성하려면 인증 정보 유형을 참조하십시오.
- Webhook 설정에 대한 자세한 내용은 Webhook 작업을 참조하십시오.
- 동시 작업: 이 옵션을 선택하면 서로 의존하지 않는 경우 대기열의 작업을 동시에 실행할 수 있습니다. 작업 슬라이스를 동시에 실행하려면 이 박스를 선택합니다. 자세한 내용은 자동화 컨트롤러 용량 결정 및 작업 영향을 참조하십시오.
- 활성화 팩트 스토리지: 이 옵션을 선택하면 자동화 컨트롤러는 실행 중인 작업과 관련된 인벤토리의 모든 호스트에 대해 수집된 팩트를 저장합니다.
- 인스턴스 그룹 폴백 방지: 이 옵션을 사용하여 인스턴스 그룹 필드에 나열된 인스턴스 그룹 만 작업을 실행할 수 있도록 허용합니다. 명확한 경우 실행 풀에서 사용 가능한 모든 인스턴스는 작업이 실행되는 위치 제어에 설명된 계층에 따라 사용됩니다.
-
권한 에스컬레이션: 이 플레이북을 선택하면 관리자로 실행되도록 합니다.
- 을 클릭합니다.
템플릿을 생성하면 작업 템플릿 페이지가 종료되지 않고 작업 템플릿 세부 정보 탭으로 이동합니다. 템플릿을 저장한 후 템플릿 시작을 클릭하여 시작할 수 있습니다. 을 클릭하여 권한, 알림, 완료된 작업 보기, 설문 조사(작업 유형이 검사가 아닌 경우)와 같은 템플릿 속성을 추가하거나 변경할 수도 있습니다. 시작하기 전에 템플릿을 먼저 저장해야 합니다. 그러지 않으면 은 비활성화된 상태로 유지됩니다.
검증
-
탐색 패널에서
선택합니다. - 새로 생성된 템플릿이 템플릿 페이지에 표시되는지 확인합니다.