$ virtctl stop <my_vm_name>
您可以通过上传本地机器上的操作系统镜像来创建虚拟机 (VM)。
您可以通过将Windows镜像上传到PVC来创建Windows虚拟机。然后在创建虚拟机时克隆PVC。
您必须在从非Red Hat提供的操作系统镜像创建的虚拟机上安装QEMU客户机代理。 您还必须在Windows虚拟机上安装VirtIO驱动程序。 |
您可以使用Red Hat OpenShift Service on AWS Web控制台从上传的操作系统镜像创建虚拟机 (VM)。
您必须拥有IMG
、ISO
或QCOW2
镜像文件。
在Web控制台中导航到**虚拟化** → **目录**。
单击没有可用引导源的模板图块。
单击**自定义虚拟机**。
在**自定义模板参数**页面上,展开**存储**并从**磁盘源**列表中选择**上传(将新文件上传到PVC)**。
浏览到您本地机器上的镜像并设置磁盘大小。
单击**自定义虚拟机**。
单击**创建虚拟机**。
您可以泛化Red Hat Enterprise Linux (RHEL)镜像以删除所有特定于系统的配置数据,然后使用该镜像创建黄金镜像(虚拟机 (VM) 的预配置快照)。您可以使用黄金镜像来部署新的虚拟机。
您可以使用virtctl
、guestfs
和virt-sysprep
工具泛化RHEL虚拟机。
您有一个用作基础虚拟机的RHEL虚拟机 (VM)。
您已安装OpenShift CLI (oc
)。
您已安装virtctl
工具。
如果RHEL虚拟机正在运行,请通过输入以下命令将其停止
$ virtctl stop <my_vm_name>
可选:克隆虚拟机以避免丢失原始虚拟机的数据。然后,您可以泛化克隆的虚拟机。
通过运行以下命令检索存储虚拟机根文件系统的dataVolume
$ oc get vm <my_vm_name> -o jsonpath="{.spec.template.spec.volumes}{'\n'}"
[{"dataVolume":{"name":"<my_vm_volume>"},"name":"rootdisk"},{"cloudInitNoCloud":{...}]
通过运行以下命令检索与列出的dataVolume
匹配的持久卷声明 (PVC)
$ oc get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
<my_vm_volume> Bound …
如果您的集群配置不允许您克隆虚拟机,为了避免丢失原始虚拟机的数据,您可以改为将虚拟机PVC克隆到数据卷。然后,您可以使用克隆的PVC创建黄金镜像。 如果您正在通过克隆PVC创建黄金镜像,请继续执行以下步骤,使用克隆的PVC。 |
使用libguestfs-tools
部署一个新的交互式容器并将PVC附加到它,运行以下命令
$ virtctl guestfs <my-vm-volume> --uid 107
此命令将打开一个shell,供您运行下一个命令。
通过运行以下命令删除所有特定于您系统的配置
$ virt-sysprep -a disk.img
在Red Hat OpenShift Service on AWS控制台中,单击**虚拟化** → **目录**。
单击**添加卷**。
在**添加卷**窗口中
从**源类型**列表中选择**使用现有卷**。
从**卷项目**列表中选择您的项目。
从**卷名称**列表中选择正确的PVC。
在**卷名称**字段中,输入新黄金镜像的名称。
从**首选项**列表中选择您正在使用的RHEL版本。
从**默认实例类型**列表中选择具有您之前选择的RHEL版本的正确CPU和内存需求的实例类型。
单击**保存**。
新的卷会出现在选择启动卷列表中。这是您的新的黄金镜像。您可以使用此卷创建新的虚拟机。
您可以通过将 Windows 镜像上传到持久卷声明 (PVC),然后在使用 AWS 网页控制台上的 Red Hat OpenShift 服务创建虚拟机时克隆 PVC 来创建 Windows 虚拟机 (VM)。
您已使用 Windows Media Creation Tool 创建了 Windows 安装 DVD 或 USB。请参阅 Microsoft 文档中的创建 Windows 10 安装介质。
您已创建了一个autounattend.xml
应答文件。请参阅 Microsoft 文档中的应答文件 (unattend.xml)。
将 Windows 镜像上传为新的 PVC
在网页控制台中导航到存储 → 持久卷声明。
单击创建持久卷声明 → 使用数据上传表单。
浏览到 Windows 镜像并选择它。
输入 PVC 名称,选择存储类和大小,然后单击上传。
Windows 镜像已上传到 PVC。
通过克隆已上传的 PVC 配置新的虚拟机
导航到虚拟化 → 目录。
选择 Windows 模板磁贴,然后单击自定义虚拟机。
从磁盘源列表中选择克隆 (克隆 PVC)。
选择 PVC 项目、Windows 镜像 PVC 和磁盘大小。
将应答文件应用于虚拟机
单击自定义虚拟机参数。
在脚本选项卡的Sysprep 部分,单击编辑。
浏览到autounattend.xml
应答文件,然后单击保存。
设置虚拟机的运行策略
清除创建后启动此虚拟机,以便虚拟机不会立即启动。
单击**创建虚拟机**。
在YAML 选项卡上,将running:false
替换为runStrategy: RerunOnFailure
,然后单击保存。
单击选项菜单 并选择启动。
虚拟机从包含autounattend.xml
应答文件的sysprep
磁盘启动。
您可以泛化 Windows 操作系统镜像以删除所有特定于系统的配置数据,然后再使用该镜像创建新的虚拟机 (VM)。
在泛化虚拟机之前,您必须确保sysprep
工具在无人参与的 Windows 安装后无法检测到应答文件。
安装了 QEMU 客户机代理的正在运行的 Windows 虚拟机。
在 AWS 控制台上的 Red Hat OpenShift 服务中,单击虚拟化 → 虚拟机。
选择一个 Windows 虚拟机以打开虚拟机详细信息页面。
单击配置 → 磁盘。
单击sysprep
磁盘旁边的选项菜单 并选择分离。
单击分离。
重命名C:\Windows\Panther\unattend.xml
以避免被sysprep
工具检测到。
通过运行以下命令启动sysprep
程序
%WINDIR%\System32\Sysprep\sysprep.exe /generalize /shutdown /oobe /mode:vm
sysprep
工具完成后,Windows 虚拟机将关闭。现在可以将虚拟机的磁盘镜像用作 Windows 虚拟机的安装镜像。
您现在可以专门化虚拟机。
专门化 Windows 虚拟机 (VM) 会将来自泛化 Windows 镜像的计算机特定信息配置到虚拟机上。
您必须具有泛化的 Windows 磁盘镜像。
您必须创建一个unattend.xml
应答文件。有关详细信息,请参阅Microsoft 文档。
在Red Hat OpenShift Service on AWS控制台中,单击**虚拟化** → **目录**。
选择一个 Windows 模板,然后单击自定义虚拟机。
从磁盘源列表中选择PVC (克隆 PVC)。
选择泛化 Windows 镜像的 PVC 项目和 PVC 名称。
单击自定义虚拟机参数。
单击脚本选项卡。
在Sysprep 部分,单击编辑,浏览到unattend.xml
应答文件,然后单击保存。
单击**创建虚拟机**。
在初始启动期间,Windows 使用unattend.xml
应答文件专门化虚拟机。虚拟机现在可以使用了。
您可以使用virtctl
命令行工具上传操作系统镜像。您可以使用现有数据卷或为镜像创建新的数据卷。
您必须具有ISO
、IMG
或QCOW2
操作系统镜像文件。
为了获得最佳性能,请使用virt-sparsify 工具或xz
或gzip
实用程序压缩镜像文件。
您必须安装virtctl
。
必须将客户端机器配置为信任 AWS 上的 Red Hat OpenShift 服务路由器的证书。
通过运行virtctl image-upload
命令上传镜像
$ virtctl image-upload dv <datavolume_name> \ (1)
--size=<datavolume_size> \ (2)
--image-path=</path/to/image> \ (3)
1 | 数据卷的名称。 |
2 | 数据卷的大小。例如:--size=500Mi 、--size=1G |
3 | 镜像的文件路径。 |
|
可选。要验证是否创建了数据卷,请运行以下命令查看所有数据卷
$ oc get dvs