3.3. 创建 Whole Windows 镜像


此流程为 Windows Server 2012 创建部署镜像。在 Red Hat Enterprise Linux 系统中执行以下步骤:

  1. 下载 virtio-win 驱动程序。有关 所需步骤,请参阅红帽客户门户。

    因此,virtio-win .iso 文件被下载到 /usr/share/virtio-win/ 中。例如: /usr/share/virtio-win/virtio-win-1.8.0.iso

  2. 使用 virt-manager 创建 Windows Server 2012 模板虚拟机:

    • 确定 Windows 模板的虚拟硬件要求。这个示例使用 1 个 x CPU、4GB RAM、10GB HDD、2 x NIC 和 2 x 虚拟 CD-ROM 驱动器。
    • 将磁盘创建为 qcow2 文件。
    • 将虚拟 HDD 和 NIC 驱动程序设置为 virtio
    • 将 2x 虚拟 CD-ROM 驱动器附加到 Windows Server 2012 R2 .iso 文件和 virtio-win-1.8.0.iso 文件。需要两个虚拟 CD-ROM 以便在 Windows 安装过程中安装 virtio-win 驱动程序。
  3. 从 ISO 镜像手动安装 Windows:

    • 从 Windows Server 2012 R2 的评估 .iso 镜像开始安装 Windows。
    • 当授予选择 HDD 驱动程序的机会时,请从包含 virtio-win-1.8.0.iso 文件的第二个虚拟 CD-ROM 中选择驱动程序。
  4. 执行安装后 Windows 检查:

    打开 设备管理器,并确认所有设备都已正确识别,并且没有 问号 警告。特别是,检查 NIC、串行和气球驱动程序是否使用 VirtIO 驱动程序。如果任何设备没有被正确识别,请应用 virtio-win 驱动程序磁盘中的驱动程序。

  5. 运行 sysprep

    Sysprep 会导致 Windows 安装变得通用,删除特定于之前执行的单个安装的安装信息。这可让您将虚拟机的虚拟硬盘用作多个安装到其他系统的模板。

    1. C:\Windows\System32\sysprep\sysprep.exe启动 Sysprep
    2. 在 Sysprep 工具中输入以下信息:

      • 对于 System Cleanup Action,请选择 Enter System Out-of-Experience (OOBE)
      • 选择 Generalize 复选框
      • 关闭选项下,选择 Shutdown
    3. 单击确定以 完成 sysprep 过程。虚拟机将在完成后自动关闭。
  6. 在 Image Service (glance)中注册 Windows 镜像:此步骤在 glance 中注册 Windows 安装的 qcow2 HDD。这个示例使用磁盘文件: /root/win2012r2.qcow2

    $ glance image-create --file /root/win2012r2.qcow2 --disk-format qcow2 --container-format bare --name win2012r2 --is-public True --progress
    [=============================>] 100%

3.3.1. 将 Windows 部署到物理服务器

  1. 通过指定硬件组件,在 ironic 中注册物理节点。例如:

    # ironic node-create -d fake_pxe -p cpus=1 -p memory_mb=1024 -p local_gb=15 -p cpu_arch=amd64
  2. 检索新节点的 UUID:

    # ironic node-list
  3. 为与物理 Windows 节点的 MAC 地址匹配的节点创建一个端口。

    # ironic port-create -n [NODE_UUID] -a [NIC_MAC]

    例如:

    # ironic port-create -n 3b3d3fd4-4621-427f-a78d-054a1ef17a0a -a 52:54:00:85:76:53
  4. 把节点设为维护模式:

    # ironic node-set-maintenance [NODE_UUID] true
    # ironic node-set-provision-state [NODE_UUID] manage
  5. 执行新节点的内省:

    # openstack baremetal introspection start [NODE_UUID] --discoverd-url http://[KEYSTONE_URL]:5050
    • [KEYSTONE_URL] 替换为 keystone 服务的 IP 地址。

      注意: 如果使用 FAKE_PXE 驱动程序,请在 ironic node-list 状态变为 部署 wait-callback 后手动打开节点。

  6. 内省完成后,关闭维护模式:

    # ironic node-set-maintenance [NODE UUID] false
    # ironic node-set-provision-state [NODE UUID] provide
  7. 创建用于实例身份验证的密钥对:

    # nova keypair-add --pub_key ~/.ssh/id_rsa.pub [KEY_NAME]
  8. 为节点启用本地引导:

    # ironic node-update [NODE_UUID] add properties/capabilities="boot_option:local"
  9. 使用 nova 引导节点:

    # nova boot --nic net-id=[NETWORK_UUID] --flavor [FLAVOR_NAME] --image [IMAGE_UUID/IMAGE_NAME] --keyname [INSTANCE_NAME]

    替换以下值:

    • [NETWORK_UUID] 替换为为用于裸机置备而创建的网络的唯一标识符。
    • [FLAVOR_NAME] 替换为为节点创建的类别的名称。
    • [IMAGE_UUID] 替换为上传到镜像服务的磁盘镜像的唯一标识符。
    • [INSTANCE_NAME] 替换为裸机实例的名称。
  10. 检索实例密码:

    # nova get-password [INSTANCE_NAME]  /path/to/your/keypairs/private/key
  11. 检查实例的状态:

    # nova list

您可以通过在仪表板中使用控制台访问实例来进一步测试这一点。

3.3.2. 启用远程桌面访问

  1. 添加一条安全组规则,以允许在 TCP/UDP 3389 上进行 远程桌面 流量。
  2. 使用 nova 命令检索安全密钥:

    # nova get-password [INSTANCE_NAME] /path/to/your/keypairs/private/key
    • [INSTANCE_NAME] 替换为裸机实例的名称。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.