×

Red Hat OpenShift Pipelines 是一个 Kubernetes 原生的 CI/CD 框架,允许开发人员在其自己的容器中设计和运行 CI/CD 管道的每个步骤。

通过使用 OpenShift Pipelines 任务和示例管道,您可以执行以下操作:

  • 创建和管理虚拟机 (VM)、持久卷声明 (PVC)、数据卷和数据源。

  • 在虚拟机中运行命令。

  • 使用libguestfs工具操作磁盘镜像。

这些任务位于任务目录 (ArtifactHub)中。

Windows 示例管道位于管道目录 (ArtifactHub)中。

先决条件

  • 您可以访问具有cluster-admin权限的 OpenShift Container Platform 集群。

  • 您已安装 OpenShift CLI (oc)。

  • 您已安装 OpenShift Pipelines

支持的虚拟机任务

下表显示了支持的任务。

表 1. 支持的虚拟机任务
任务 描述

create-vm-from-manifest

根据提供的清单或使用virtctl创建虚拟机。

create-vm-from-template

从模板创建虚拟机。

copy-template

复制虚拟机模板。

modify-vm-template

修改虚拟机模板。

modify-data-object

创建或删除数据卷或数据源。

cleanup-vm

在虚拟机中运行脚本或命令,然后停止或删除虚拟机。

disk-virt-customize

使用virt-customize工具在目标 PVC 上运行自定义脚本。

disk-virt-sysprep

使用virt-sysprep工具在目标 PVC 上运行 sysprep 脚本。

wait-for-vmi-status

等待虚拟机实例的特定状态,并根据状态失败或成功。

管道中的虚拟机创建现在使用ClusterInstanceTypeClusterPreference,而不是已弃用的基于模板的任务。create-vm-from-templatecopy-templatemodify-vm-template命令仍然可用,但在默认管道任务中未使用。

Windows EFI 安装程序管道

您可以使用 Web 控制台或 CLI 运行Windows EFI 安装程序管道

Windows EFI 安装程序管道将 Windows 10、Windows 11 或 Windows Server 2022 从 Windows 安装映像 (ISO 文件)安装到新的数据卷中。自定义应答文件用于运行安装过程。

Windows EFI 安装程序管道使用 OpenShift Container Platform 预定义的包含sysprep的配置映射文件,适用于 Microsoft ISO 文件。对于属于不同 Windows 版本的 ISO 文件,可能需要创建一个包含特定于系统sysprep定义的新配置映射文件。

使用 Web 控制台运行示例管道

您可以从 Web 控制台的**管道**菜单运行示例管道。

步骤
  1. 单击侧边菜单中的**管道**→**管道**。

  2. 选择一个管道以打开**管道详细信息**页面。

  3. 从**操作**列表中,选择**启动**。将显示**启动管道**对话框。

  4. 保留参数的默认值,然后单击**启动**以运行管道。“详细信息”选项卡跟踪每个任务的进度并显示管道状态。

使用 CLI 运行示例管道

使用PipelineRun资源运行示例管道。PipelineRun对象是管道的运行实例。它使用特定的输入、输出和执行参数在集群上实例化一个管道以进行执行。它还为管道中的每个任务创建一个TaskRun对象。

步骤
  1. 要运行 Microsoft Windows 11 安装程序管道,请创建以下PipelineRun清单:

    apiVersion: tekton.dev/v1
    kind: PipelineRun
    metadata:
      generateName: windows11-installer-run-
      labels:
        pipelinerun: windows11-installer-run
    spec:
        params:
        -   name: winImageDownloadURL
            value: <windows_image_download_url> (1)
        -   name: acceptEula
            value: false (2)
        pipelineRef:
            params:
            -   name: catalog
                value: redhat-pipelines
            -   name: type
                value: artifact
            -   name: kind
                value: pipeline
            -   name: name
                value: windows-efi-installer
            -   name: version
                value: 4.17
            resolver: hub
        taskRunSpecs:
        -   pipelineTaskName: modify-windows-iso-file
            PodTemplate:
                securityContext:
                    fsGroup: 107
                    runAsUser: 107
    1 指定 Windows 11 64 位 ISO 文件的 URL。产品的语言必须为英语(美国)。
    2 示例PipelineRun对象包含一个特殊参数acceptEula。设置此参数表示您同意每个Microsoft产品部署或安装适用的Microsoft用户许可协议。如果将其设置为false,则管道将在第一个任务处退出。
  2. 应用PipelineRun清单

    $ oc apply -f windows11-customize-run.yaml