四:启动一个 Windows Server 实例

4.1:制作 Windows Server 2008 R2 镜像

4.1.1:创建磁盘

[root@node252 ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/WinServer-2008-R2.qcow2 20G
Formatting '/var/lib/libvirt/images/WinServer-2008-R2.qcow2', fmt=qcow2 size=21474836480 encryption=off cluster_size=65536 lazy_refcounts=off

4.1.2:创建 KVM虚拟机

由于 Windows 镜像不含 virtio 驱动,无法加载虚拟磁盘和虚拟网卡,需要额外的 virtio 驱动支持,各版本下载地址:
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/

[root@node252 ~]# virt-install --virt-type kvm --name WinServer-2008-R2 \
   --ram 2048 --vcpus=2 \
   --os-type=windows \
   --cdrom=/usr/local/src/windows_server_2008_r2.iso \
   --disk path=/var/lib/libvirt/images/WinServer-2008-R2.qcow2,format=qcow2,bus=virtio \
   --disk path=/usr/local/src/virtio-win-0.1.149_amd64.vfd,device=floppy \
   --network bridge=br0,model=virtio \
   --graphics vnc,listen=0.0.0.0 \
   --noautoconsole

4.1.3:打开虚拟机管理终端

  • virt-manager 配合 Xmanager,打开虚拟机管理终端:
[root@node252 ~]# virt-manager

openstack 主机 openstack server create_openstack

4.1.4:安装操作系统

按照常规步骤安装 Windows Server 2008 R2 系统,以下几点注意:

  1. 选择 “Windows Server 2008 R2 Enterprise (完全安装)” 进行安装;

openstack 主机 openstack server create_openstack 主机_02

  1. 安装过程中需要加载 virtio 驱动(将网卡驱动和磁盘驱动都进行一次安装);

openstack 主机 openstack server create_openstack 主机_03

openstack 主机 openstack server create_windows server_04

openstack 主机 openstack server create_windows server_05

openstack 主机 openstack server create_Windows_06

设置密码为 “Aa123456”:

4.1.5:添加一块内网网卡

  • 关机,添加网卡,桥接到 br1,类型为 virtio:

openstack 主机 openstack server create_Windows_07

4.1.6:系统初始化操作

开机,进行系统初始化操作。

  • 配置外网 IP 地址(本地连接):

openstack 主机 openstack server create_openstack_08

  • 配置内网 IP 地址(本地连接 2):

openstack 主机 openstack server create_openstack_09

  • 验证网络通信:

openstack 主机 openstack server create_Windows_10

  • 关闭防火墙:

openstack 主机 openstack server create_ci_11

  • 开启远程连接:

openstack 主机 openstack server create_Windows_12

  • 验证远程连接:

openstack 主机 openstack server create_openstack_13

  • 设置 NTP 时间同步(与本地 NTP 服务器同步时间):

openstack 主机 openstack server create_windows server_14

4.1.7:重新封装虚拟机

系统准备工具路径:C:\Windows\System32\syspre\sysprep.exe

  • 勾选 “通用”,选择 “关机”:

openstack 主机 openstack server create_openstack 主机_15

4.1.8:拷贝磁盘文件至 Openstack 控制端

[root@node252 ~]# scp /var/lib/libvirt/images/WinServer-2008-R2.qcow2 node101:/root/

4.2:创建镜像

  • 导入 admin 凭证:
[root@node101 ~]# source admin-ocata.sh
  • 创建名为 WinServer-2008-R2 的镜像:
[root@node101 ~]# openstack image create "WinServer-2008-R2" --file /root/WinServer-2008-R2.qcow2 --disk-format qcow2 --container-format bare --public
+------------------+------------------------------------------------------+
| Field            | Value                                                |
+------------------+------------------------------------------------------+
| checksum         | 6769fd8953052a47511da6a3a51f118d                     |
| container_format | bare                                                 |
| created_at       | 2020-11-17T07:52:05Z                                 |
| disk_format      | qcow2                                                |
| file             | /v2/images/e2f766f6-5e57-474f-96cf-34fd4e9e5002/file |
| id               | e2f766f6-5e57-474f-96cf-34fd4e9e5002                 |
| min_disk         | 0                                                    |
| min_ram          | 0                                                    |
| name             | WinServer-2008-R2                                    |
| owner            | acac1eb6c81540429c3323084bed23d9                     |
| protected        | False                                                |
| schema           | /v2/schemas/image                                    |
| size             | 7218397184                                           |
| status           | active                                               |
| tags             |                                                      |
| updated_at       | 2020-11-17T08:01:14Z                                 |
| virtual_size     | None                                                 |
| visibility       | public                                               |
+------------------+------------------------------------------------------+
  • 验证镜像:
[root@node101 ~]# openstack image list
+--------------------------------------+-------------------+--------+
| ID                                   | Name              | Status |
+--------------------------------------+-------------------+--------+
| f4316053-2df5-41b2-9ae4-61fbed684b96 | CentOS-7.2        | active |
| e2f766f6-5e57-474f-96cf-34fd4e9e5002 | WinServer-2008-R2 | active |
| 960434ae-56e7-49a2-8388-db376ac2a406 | cirros1           | active |
| 3168eab6-7ccd-4379-addd-b92266bc6f51 | cirros2           | active |
| 54461727-4f32-4cb9-8510-3ce5d66d39cb | cirros3           | active |
+--------------------------------------+-------------------+--------+

4.3:确认实例可用资源

  • 导入 demo 凭证:
[root@node101 ~]# source demo-ocata.sh
  • 列出可用虚拟机类型:
[root@node101 ~]# openstack flavor list
+--------------------------------------+-----------+------+------+-----------+-------+-----------+
| ID                                   | Name      |  RAM | Disk | Ephemeral | VCPUs | Is Public |
+--------------------------------------+-----------+------+------+-----------+-------+-----------+
| 0cc027fe-58e7-4548-ac4e-2c8e3b8bbd36 | 1c-1g-10G | 1024 |   10 |         0 |     1 | True      |
| 1                                    | 2c-2g-20G | 2048 |   20 |         0 |     2 | True      |
+--------------------------------------+-----------+------+------+-----------+-------+-----------+
  • 列出可用镜像:
[root@node101 ~]# openstack image list
+--------------------------------------+-------------------+--------+
| ID                                   | Name              | Status |
+--------------------------------------+-------------------+--------+
| f4316053-2df5-41b2-9ae4-61fbed684b96 | CentOS-7.2        | active |
| e2f766f6-5e57-474f-96cf-34fd4e9e5002 | WinServer-2008-R2 | active |
| 960434ae-56e7-49a2-8388-db376ac2a406 | cirros1           | active |
| 3168eab6-7ccd-4379-addd-b92266bc6f51 | cirros2           | active |
| 54461727-4f32-4cb9-8510-3ce5d66d39cb | cirros3           | active |
+--------------------------------------+-------------------+--------+
  • 列出可用网络:
[root@node101 ~]# openstack network list
+--------------------------------------+--------------+--------------------------------------+
| ID                                   | Name         | Subnets                              |
+--------------------------------------+--------------+--------------------------------------+
| 5b845b84-5aa6-4b1b-b282-dc3694bdc82a | self-net     | ced26a73-966c-40c6-8cab-71e683143f34 |
| 7356155c-9e74-463f-a93a-73f625640e8f | external-net | 9c339f48-a067-4c3b-bc70-11cd33f162ec |
| f2e6619e-c7dd-445c-91a6-024f34e37719 | test-net     | c62894a0-602b-44d6-b31b-1b919eeb9742 |
+--------------------------------------+--------------+--------------------------------------+
  • 列出可用安全组:
[root@node101 ~]# openstack security group list
+--------------------------------------+---------+------------------------+----------------------------------+
| ID                                   | Name    | Description            | Project                          |
+--------------------------------------+---------+------------------------+----------------------------------+
| 62d98b23-3efe-4b4f-8de1-2f62f1df9d55 | default | Default security group | 9a94f1a1e271459580613778bf7c3392 |
+--------------------------------------+---------+------------------------+----------------------------------+
  • 列出可用密钥对:
[root@node101 ~]# openstack keypair list
+----------+-------------------------------------------------+
| Name     | Fingerprint                                     |
+----------+-------------------------------------------------+
| demo-key | 3e:39:7a:d1:43:ad:4c:4a:7b:19:5e:fe:bc:d3:27:86 |
+----------+-------------------------------------------------+

4.4:启动实例(提供者网络)

4.4.1:创建实例

采用命令行方式创建。

  • 创建一个名为 winserver-2008-r2-test 的云主机,2块网卡,分别使用 external-net 连接外网,test-net 连接内网:
[root@node101 ~]# openstack server create --flavor 2c-2g-20G --image WinServer-2008-R2 \
     --nic net-id=7356155c-9e74-463f-a93a-73f625640e8f --nic net-id=f2e6619e-c7dd-445c-91a6-024f34e37719 \
     --security-group default \
     --key-name demo-key winserver-2008-r2-test
+-----------------------------+----------------------------------------------------------+
| Field                       | Value                                                    |
+-----------------------------+----------------------------------------------------------+
| OS-DCF:diskConfig           | MANUAL                                                   |
| OS-EXT-AZ:availability_zone |                                                          |
| OS-EXT-STS:power_state      | NOSTATE                                                  |
| OS-EXT-STS:task_state       | scheduling                                               |
| OS-EXT-STS:vm_state         | building                                                 |
| OS-SRV-USG:launched_at      | None                                                     |
| OS-SRV-USG:terminated_at    | None                                                     |
| accessIPv4                  |                                                          |
| accessIPv6                  |                                                          |
| addresses                   |                                                          |
| adminPass                   | pqVJ8QrrX9MQ                                             |
| config_drive                |                                                          |
| created                     | 2020-11-18T06:43:50Z                                     |
| flavor                      | 2c-2g-20G (1)                                            |
| hostId                      |                                                          |
| id                          | 7c4bdd9a-cd95-4305-a8df-0c2429039e89                     |
| image                       | WinServer-2008-R2 (27784f4b-b987-4827-a402-7f1dcf99648b) |
| key_name                    | demo-key                                                 |
| name                        | winserver-2008-r2-test                                   |
| progress                    | 0                                                        |
| project_id                  | 9a94f1a1e271459580613778bf7c3392                         |
| properties                  |                                                          |
| security_groups             | name='default'                                           |
| status                      | BUILD                                                    |
| updated                     | 2020-11-18T06:43:51Z                                     |
| user_id                     | 69e61c6f12594c768bb39efb4e865a9b                         |
| volumes_attached            |                                                          |
+-----------------------------+----------------------------------------------------------+

openstack 主机 openstack server create_openstack_16

openstack 主机 openstack server create_windows server_17

4.4.2:修改实例 IP 地址

  • 将实例的 IP 地址修改为 Openstack 分配的 IP 地址(外网 192.168.1.222,内网 172.16.1.229):

openstack 主机 openstack server create_windows server_18

  • 验证内外网通信:

openstack 主机 openstack server create_Windows_19

  • 添加安全组规则,允许远程桌面连接:

openstack 主机 openstack server create_ci_20

  • 验证远程登录:

openstack 主机 openstack server create_ci_21