7.13. 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
ツールを使用してディスクイメージを操作する
7.13.1. 前提条件
-
cluster-admin
権限を使用して OpenShift Container Platform クラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。 - OpenShift Pipeline がインストールされている。
7.13.2. SSP Operator によってサポートされる仮想マシンのタスク
次の表は、SSP Operator の一部として含まれるタスクを示しています。
タスク | 説明 |
---|---|
|
提供されたマニフェストから、または |
| テンプレートからの仮想マシンの作成 |
| 仮想マシンテンプレートをコピーします。 |
| 仮想マシンテンプレートを変更します。 |
| データボリュームまたはデータソースを作成または削除します。 |
| 仮想マシンでスクリプトまたはコマンドを実行し、後で仮想マシンを停止または削除します。 |
|
|
|
|
| 仮想マシンインスタンスの特定のステータスを待機し、ステータスに基づいて失敗または成功します。 |
パイプラインでの仮想マシンの作成では、非推奨になったテンプレートベースのタスクではなく、ClusterInstanceType
と ClusterPreference
が使用されるようになりました。create-vm-from-template
、copy-template
、および modify-vm-template
コマンドは引き続き使用できますが、デフォルトのパイプラインタスクでは使用されません。
7.13.3. Windows EFI インストーラーパイプライン
Web コンソールまたは CLI を使用して、Windows EFI installer pipeline を実行できます。
Windows EFI インストーラーパイプラインは、Windows インストールイメージ (ISO ファイル) から Windows 10、Windows 11、または Windows Server 2022 を新しいデータボリュームにインストールします。インストールプロセスの実行には、カスタムアンサーファイルが使用されます。
Windows EFI インストーラーパイプラインは、OpenShift Container Platform により事前定義された、Microsoft ISO ファイルに適した sysprep
を含む config map ファイルを使用します。さまざまな Windows エディションに関連する ISO ファイルの場合は、システム固有の sysprep
定義を使用して新しい config map ファイルを作成することが必要になる場合があります。
7.13.3.1. Web コンソールを使用してサンプルパイプラインを実行する
サンプルパイプラインは、Web コンソールの Pipelines メニューから実行できます。
手順
-
サイドメニューの Pipelines
Pipelines をクリックします。 - パイプラインを選択して、Pipeline details ページを開きます。
- Actions リストから、Start を選択します。Start Pipeline ダイアログが表示されます。
- パラメーターのデフォルト値を保持し、Start をクリックしてパイプラインを実行します。Details タブでは、各タスクの進行状況が追跡され、パイプラインのステータスが表示されます。
7.13.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 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 を指定します。製品の言語は英語 (米国) でなければなりません。
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 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: {}
PipelineRun
マニフェストを適用します。$ oc apply -f windows10-customize-run.yaml