7.12. OpenShift Pipelines를 사용하여 가상 머신 관리
Red Hat OpenShift Pipelines 는 Kubernetes 네이티브 CI/CD 프레임워크로, 개발자가 자체 컨테이너에서 CI/CD 파이프라인의 각 단계를 설계 및 실행할 수 있습니다.
SSP(Scheduling, Scale, Performance) Operator는 OpenShift Virtualization과 OpenShift Pipelines를 통합합니다. SSP Operator에는 다음을 수행할 수 있는 작업 및 예제 파이프라인이 포함되어 있습니다.
- 가상 머신(VM), PVC(영구 볼륨 클레임) 및 데이터 볼륨 생성 및 관리
- VM에서 명령 실행
-
libguestfs
툴을 사용하여 디스크 이미지 조작
7.12.1. 사전 요구 사항
-
cluster-admin
권한이 있는 OpenShift Container Platform 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다. - OpenShift Pipelines를 설치했습니다.
7.12.2. SSP Operator에서 지원하는 가상 머신 작업
다음 표에서는 SSP Operator의 일부로 포함된 작업을 보여줍니다.
Task | 설명 |
---|---|
|
제공된 매니페스트 또는 |
| 템플릿에서 가상 머신을 생성합니다. |
| 가상 머신 템플릿을 복사합니다. |
| 가상 머신 템플릿을 수정합니다. |
| 데이터 볼륨 또는 데이터 소스를 생성하거나 삭제합니다. |
| 가상 머신에서 스크립트 또는 명령을 실행하고 나중에 가상 머신을 중지하거나 삭제합니다. |
|
|
|
|
| 가상 머신 인스턴스의 특정 상태를 기다린 후 상태에 따라 실패하거나 성공합니다. |
이제 파이프라인에서 가상 머신 생성에서 더 이상 사용되지 않는 템플릿 기반 작업 대신 ClusterInstanceType
및 ClusterPreference
를 사용합니다. create-vm-from-template
,copy-template
, modify-vm-template
명령은 계속 사용할 수 있지만 기본 파이프라인 작업에는 사용되지 않습니다.
7.12.3. Windows EFI 설치 프로그램 파이프라인
웹 콘솔 또는 CLI를 사용하여 Windows EFI 설치 프로그램 파이프라인 을 실행할 수 있습니다.
Windows EFI 설치 프로그램 파이프라인은 Windows 10, Windows 11 또는 Windows Server 2022를 Windows 설치 이미지(ISO 파일)의 새 데이터 볼륨에 설치합니다. 사용자 지정 응답 파일은 설치 프로세스를 실행하는 데 사용됩니다.
Windows EFI 설치 프로그램 파이프라인은 OpenShift Container Platform에서 사전 정의하고 Microsoft ISO 파일에 적합한 sysprep
이 사전 정의된 구성 맵 파일을 사용합니다. 다른 Windows Edition과 관련된 ISO 파일의 경우 시스템별 sysprep
정의를 사용하여 새 구성 맵 파일을 생성해야 할 수 있습니다.
7.12.3.1. 웹 콘솔을 사용하여 예제 파이프라인 실행
웹 콘솔의 파이프라인 메뉴에서 예제 파이프라인 을 실행할 수 있습니다.
프로세스
-
사이드 메뉴에서 파이프라인
파이프라인 을 클릭합니다. - 파이프라인 세부 정보 페이지를 열려면 파이프라인 을 선택합니다.
- 작업 목록에서 시작을 선택합니다. Start Pipeline 대화 상자가 표시됩니다.
- 매개변수의 기본값을 유지하고 시작을 클릭하여 파이프라인을 실행합니다. 세부 정보 탭에서는 각 작업의 진행 상황을 추적하고 파이프라인 상태를 표시합니다.
7.12.3.2. CLI를 사용하여 예제 파이프라인 실행
PipelineRun
리소스를 사용하여 예제 파이프라인을 실행합니다. PipelineRun
오브젝트는 파이프라인의 실행 중인 인스턴스입니다. 클러스터에서 특정 입력, 출력 및 실행 매개변수를 사용하여 실행할 파이프라인을 인스턴스화합니다. 또한 파이프라인의 각 작업에 대해 TaskRun
오브젝트를 생성합니다.
프로세스
Windows 10 설치 프로그램 파이프라인을 실행하려면 다음
PipelineRun
매니페스트를 생성합니다.apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata: generateName: windows10-installer-run- labels: pipelinerun: windows10-installer-run spec: params: - name: winImageDownloadURL value: <link_to_windows_10_iso> 1 pipelineRef: name: windows10-installer taskRunSpecs: - pipelineTaskName: copy-template taskServiceAccountName: copy-template-task - pipelineTaskName: modify-vm-template taskServiceAccountName: modify-vm-template-task - pipelineTaskName: create-vm-from-template taskServiceAccountName: create-vm-from-template-task - pipelineTaskName: wait-for-vmi-status taskServiceAccountName: wait-for-vmi-status-task - pipelineTaskName: create-base-dv taskServiceAccountName: modify-data-object-task - pipelineTaskName: cleanup-vm taskServiceAccountName: cleanup-vm-task status: {}
- 1
- Windows 10 64비트 ISO 파일의 URL을 지정합니다. 제품 언어는 영어(미국)여야 합니다.
PipelineRun
매니페스트를 적용합니다.$ oc apply -f windows10-installer-run.yaml
Windows 10 사용자 지정 파이프라인을 실행하려면 다음
PipelineRun
매니페스트를 생성합니다.apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata: generateName: windows10-customize-run- labels: pipelinerun: windows10-customize-run spec: params: - name: allowReplaceGoldenTemplate value: true - name: allowReplaceCustomizationTemplate value: true pipelineRef: name: windows10-customize taskRunSpecs: - pipelineTaskName: copy-template-customize taskServiceAccountName: copy-template-task - pipelineTaskName: modify-vm-template-customize taskServiceAccountName: modify-vm-template-task - pipelineTaskName: create-vm-from-template taskServiceAccountName: create-vm-from-template-task - pipelineTaskName: wait-for-vmi-status taskServiceAccountName: wait-for-vmi-status-task - pipelineTaskName: create-base-dv taskServiceAccountName: modify-data-object-task - pipelineTaskName: cleanup-vm taskServiceAccountName: cleanup-vm-task - pipelineTaskName: copy-template-golden taskServiceAccountName: copy-template-task - pipelineTaskName: modify-vm-template-golden taskServiceAccountName: modify-vm-template-task status: {}
PipelineRun
매니페스트를 적용합니다.$ oc apply -f windows10-customize-run.yaml