6.12. 使用 OpenShift Pipelines 管理虚拟机


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

Scheduling、Scale 和 Performance (SSP) Operator 将 OpenShift Virtualization 与 OpenShift Pipelines 集成。SSP Operator 包括允许您的任务和示例管道:

  • 创建和管理虚拟机 (VM)、持久性卷声明 (PVC) 和数据卷
  • 在虚拟机中运行命令
  • 使用 libguestfs 工具操作磁盘镜像

6.12.1. 先决条件

  • 您可以使用 cluster-admin 权限访问 Red Hat OpenShift Service on AWS 集群。
  • 已安装 OpenShift CLI(oc)。
  • 安装 OpenShift Pipelines

6.12.2. SSP Operator 支持的虚拟机任务

下表显示了 SSP Operator 中包含的任务。

表 6.4. SSP Operator 支持的虚拟机任务
任务描述

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 命令仍然可用,但不用于默认管道任务。

6.12.3. Windows EFI 安装程序管道

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

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

注意

Windows EFI 安装程序管道使用带有 Red Hat OpenShift Service on AWS 预定义的 sysprep 的配置映射文件,并适合 Microsoft ISO 文件。对于与不同 Windows 版本相关的 ISO 文件,可能需要创建一个新的配置映射文件,并带有特定于系统的 sysprep 定义。

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

您可以从 web 控制台中的 Pipelines 菜单运行示例管道。

流程

  1. 在侧边菜单中点 Pipelines Pipelines
  2. 选择一个管道以打开 Pipeline 详情页面。
  3. Actions 列表中,选择 Start。此时会显示 Start Pipeline 对话框。
  4. 保留参数的默认值,然后点 Start 运行管道。Details 选项卡跟踪每个任务的进度,并显示管道状态。

6.12.3.2. 使用 CLI 运行示例管道

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

流程

  1. 要运行 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
          serviceAccountName: copy-template-task
        - pipelineTaskName: modify-vm-template
          serviceAccountName: modify-vm-template-task
        - pipelineTaskName: create-vm-from-template
          serviceAccountName: create-vm-from-template-task
        - pipelineTaskName: wait-for-vmi-status
          serviceAccountName: wait-for-vmi-status-task
        - pipelineTaskName: create-base-dv
          serviceAccountName: modify-data-object-task
        - pipelineTaskName: cleanup-vm
          serviceAccountName: cleanup-vm-task
      status: {}
    1
    指定 Windows 10 64 位 ISO 文件的 URL。产品语言必须是 English (United States)。
  2. 应用 PipelineRun 清单:

    $ oc apply -f windows10-installer-run.yaml
  3. 要运行 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
          serviceAccountName: copy-template-task
        - pipelineTaskName: modify-vm-template-customize
          serviceAccountName: modify-vm-template-task
        - pipelineTaskName: create-vm-from-template
          serviceAccountName: create-vm-from-template-task
        - pipelineTaskName: wait-for-vmi-status
          serviceAccountName: wait-for-vmi-status-task
        - pipelineTaskName: create-base-dv
          serviceAccountName: modify-data-object-task
        - pipelineTaskName: cleanup-vm
          serviceAccountName: cleanup-vm-task
        - pipelineTaskName: copy-template-golden
          serviceAccountName: copy-template-task
        - pipelineTaskName: modify-vm-template-golden
          serviceAccountName: modify-vm-template-task
    status: {}
  4. 应用 PipelineRun 清单:

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

6.12.4. 其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.