7.12. OpenShift Pipelines を使用した仮想マシンの管理


Red Hat OpenShift Pipelines は、開発者が独自のコンテナーで CI/CD パイプラインの各ステップを設計および実行できるようにする、Kubernetes ネイティブの CI/CD フレームワークです。

Scheduling、Scale、and Performance (SSP) Operator は、OpenShift Virtualization を OpenShift Pipelines と統合します。SSP Operator には、次のことを可能にするタスクとサンプルパイプラインが含まれています。

  • 仮想マシン (VM)、永続ボリューム要求 (PVC)、およびデータボリュームの作成と管理
  • 仮想マシンでコマンドを実行する
  • libguestfs ツールを使用してディスクイメージを操作する
重要

Red Hat OpenShift Pipelines を使用した仮想マシンの管理は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

7.12.1. 前提条件

7.12.2. Scheduling, Scale, and Performance (SSP) リソースのデプロイ

SSP Operator のサンプル Tekton Tasks と Pipelines は、OpenShift Virtualization をインストールするときにデフォルトではデプロイされません。SSP Operator の Tekton リソースをデプロイするには、HyperConverged カスタムリソース (CR) で deployTektonTaskResources 機能ゲートを有効にします。

手順

  1. 以下のコマンドを実行して、デフォルトのエディターで HyperConverged CR を開きます。

    $ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
  2. spec.featureGates.deployTektonTaskResources フィールドを true に設定します。

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
      namespace: kubevirt-hyperconverged
    spec:
      tektonPipelinesNamespace: <user_namespace> 1
      featureGates:
        deployTektonTaskResources: true 2
    # ...
    1
    パイプラインが実行される namespace。
    2
    SSP オペレーターによって Tekton リソースをデプロイするために有効になる機能ゲート。
    注記

    後でフィーチャーゲートを無効にしても、タスクとサンプルパイプラインは引き続き使用できます。

  3. 変更を保存し、エディターを終了します。

7.12.3. SSP Operator によってサポートされる仮想マシンのタスク

次の表は、SSP Operator の一部として含まれるタスクを示しています。

表7.3 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-template、および edit-vm-template コマンドは引き続き使用できますが、デフォルトのパイプラインタスクでは使用されません。

7.12.4. パイプラインの例

SSP Operator には、次の Pipeline マニフェストの例が含まれています。サンプルパイプラインは、Web コンソールまたは CLI を使用して実行できます。

複数バージョンの Windows が必要な場合は、複数のインストーラーパイプラインを実行する必要がある可能性があります。複数のインストーラーパイプラインを実行する場合、それぞれに autounattend config map やベースイメージ名などの一意のパラメーターが必要です。たとえば、Windows 10 および Windows 11 または Windows Server 2022 イメージが必要な場合は、Windows efi インストーラーパイプラインと Windows bios インストーラーパイプラインの両方を実行する必要があります。一方で、Windows 11 および Windows Server 2022 イメージが必要な場合、実行する必要があるのは Windows efi インストーラーパイプラインのみです。

Windows EFI インストーラーパイプライン
このパイプラインは、Windows 11 または Windows Server 2022 を Windows インストールイメージ (ISO ファイル) から新しいデータボリュームにインストールします。インストールプロセスの実行には、カスタムアンサーファイルが使用されます。
Windows BIOS インストーラーパイプライン
このパイプラインは、Windows 10 を Windows インストールイメージ (ISO ファイル) から新しいデータボリュームにインストールします。インストールプロセスの実行には、カスタムアンサーファイルが使用されます。
Windows カスタマイズパイプライン
このパイプラインは、基本的な Windows 10、11、または Windows Server 2022 インストールのデータボリュームを複製し、Microsoft SQL Server Express または Microsoft Visual Studio Code をインストールすることでカスタマイズして、新しいイメージとテンプレートを作成します。
注記

サンプルパイプラインでは、OpenShift Container Platform によって事前定義され、Microsoft ISO ファイルに適した sysprep を含む config map ファイルを使用します。さまざまな Windows エディションに関連する ISO ファイルの場合は、システム固有の sysprep 定義を使用して新しい config map ファイルを作成することが必要になる場合があります。

7.12.4.1. Web コンソールを使用してサンプルパイプラインを実行する

サンプルパイプラインは、Web コンソールの Pipelines メニューから実行できます。

手順

  1. サイドメニューの Pipelines Pipelines をクリックします。
  2. パイプラインを選択して、Pipeline details ページを開きます。
  3. Actions リストから、Start を選択します。Start Pipeline ダイアログが表示されます。
  4. パラメーターのデフォルト値を保持し、Start をクリックしてパイプラインを実行します。Details タブでは、各タスクの進行状況が追跡され、パイプラインのステータスが表示されます。

7.12.4.2. CLI を使用してサンプルパイプラインを実行する

PipelineRun リソースを使用して、サンプルパイプラインを実行します。PipelineRun オブジェクトは、パイプラインの実行中のインスタンスです。これは、クラスター上の特定の入力、出力、および実行パラメーターで実行されるパイプラインをインスタンス化します。また、パイプライン内のタスクごとに 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
          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 を指定します。製品の言語は英語 (米国) でなければなりません。
  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
          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: {}
  4. PipelineRun マニフェストを適用します。

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

7.12.5. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.