3.3. 创建 Whole Windows 镜像
此流程为 Windows Server 2012 创建部署镜像。在 Red Hat Enterprise Linux 系统中执行以下步骤:
下载 virtio-win 驱动程序。有关 所需步骤,请参阅红帽客户门户。
因此,virtio-win .iso 文件被下载到 /usr/share/virtio-win/ 中。例如: /usr/share/virtio-win/virtio-win-1.8.0.iso
使用 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 驱动程序。
从 ISO 镜像手动安装 Windows:
- 从 Windows Server 2012 R2 的评估 .iso 镜像开始安装 Windows。
- 当授予选择 HDD 驱动程序的机会时,请从包含 virtio-win-1.8.0.iso 文件的第二个虚拟 CD-ROM 中选择驱动程序。
执行安装后 Windows 检查:
打开 设备管理器,并确认所有设备都已正确识别,并且没有 问号 警告。特别是,检查 NIC、串行和气球驱动程序是否使用 VirtIO 驱动程序。如果任何设备没有被正确识别,请应用 virtio-win 驱动程序磁盘中的驱动程序。
运行 sysprep :
Sysprep 会导致 Windows 安装变得通用,删除特定于之前执行的单个安装的安装信息。这可让您将虚拟机的虚拟硬盘用作多个安装到其他系统的模板。
- 从 C:\Windows\System32\sysprep\sysprep.exe启动 Sysprep
在 Sysprep 工具中输入以下信息:
- 对于 System Cleanup Action,请选择 Enter System Out-of-Experience (OOBE)。
- 选择 Generalize 复选框
- 在关闭选项下,选择 Shutdown。
- 单击确定以 完成 sysprep 过程。虚拟机将在完成后自动关闭。
在 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 部署到物理服务器
通过指定硬件组件,在 ironic 中注册物理节点。例如:
# ironic node-create -d fake_pxe -p cpus=1 -p memory_mb=1024 -p local_gb=15 -p cpu_arch=amd64
检索新节点的 UUID:
# ironic node-list
为与物理 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
把节点设为维护模式:
# ironic node-set-maintenance [NODE_UUID] true # ironic node-set-provision-state [NODE_UUID] manage
执行新节点的内省:
# openstack baremetal introspection start [NODE_UUID] --discoverd-url http://[KEYSTONE_URL]:5050
将
[KEYSTONE_URL]
替换为 keystone 服务的 IP 地址。注意: 如果使用 FAKE_PXE 驱动程序,请在 ironic node-list 状态变为
部署 wait-callback
后手动打开节点。
内省完成后,关闭维护模式:
# ironic node-set-maintenance [NODE UUID] false # ironic node-set-provision-state [NODE UUID] provide
创建用于实例身份验证的密钥对:
# nova keypair-add --pub_key ~/.ssh/id_rsa.pub [KEY_NAME]
为节点启用本地引导:
# ironic node-update [NODE_UUID] add properties/capabilities="boot_option:local"
使用 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]
替换为裸机实例的名称。
-
将
检索实例密码:
# nova get-password [INSTANCE_NAME] /path/to/your/keypairs/private/key
检查实例的状态:
# nova list
您可以通过在仪表板中使用控制台访问实例来进一步测试这一点。
3.3.2. 启用远程桌面访问
-
添加一条安全组规则,以允许在
TCP/UDP 3389
上进行 远程桌面 流量。 使用 nova 命令检索安全密钥:
# nova get-password [INSTANCE_NAME] /path/to/your/keypairs/private/key
-
将
[INSTANCE_NAME]
替换为裸机实例的名称。
-
将