CentOS Stream 9
Sponsored Link

OpenStack Bobcat : Create Instances (Windows)2023/10/24

 
Create and Start Virtual Machine Instance that Windows is installed.
[1] Create Windows image on a Compute Node and add it to Glance.
For example on here, it creates Windows Server 2022 image.
Download Windows Server 2022 installation ISO beforehand.
# download VirtIO driver for Windows

[root@dlp ~(keystone)]#
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso -O /home/virtio-win.iso
# install Windows

[root@dlp ~(keystone)]# virt-install \
--name Win2k22 \
--ram 6144 \
--disk path=/var/kvm/images/Win2k22.img,size=40,bus=virtio \
--disk path=/home/virtio-win.iso,device=cdrom \
--vcpus 4 \
--os-variant win2k22 \
--network default,model=virtio \
--graphics vnc,listen=0.0.0.0,password=password \
--video vga \
--cdrom /home/Win2022_EN-US_20348.169.210806-2348.fe.iso 


# if enable secure boot, specify like follows

[root@dlp ~(keystone)]# virt-install \
--name Win2k22 \
--ram 6144 \
--disk path=/var/kvm/images/Win2k22.img,size=40,bus=virtio \
--disk path=/home/virtio-win.iso,device=cdrom \
--cpu host-passthrough \
--vcpus=4 \
--os-variant win2k22 \
--network default,model=virtio \
--graphics vnc,listen=0.0.0.0,password=password \
--video virtio \
--cdrom /home/Win2022_EN-US_20348.169.210806-2348.fe.iso \
--features kvm_hidden=on,smm=on \
--boot loader=/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd,loader_ro=yes,loader_type=pflash,nvram_template=/usr/share/edk2/ovmf/OVMF_VARS.secboot.fd 
[2] During the installation, load VirtIO driver to detect disks.
Click the [Load driver] link.
[3] Specify a folder under the [virtio-win.iso].
For the case of x64 System, specify the folder [amd64] - [2k22].
After that, proceed installation steps with common procedure.
[4] After finishing installation, logon to the Windows and apply VirtIO driver to the network device.
For others, if you need, apply VirtIO driver to display device and PCI device.
[5] Run PowerShell with admin privilege and change ExecutionPolicy to Unrestricted.
PS > Set-ExecutionPolicy Unrestricted
[6] Download and Install CloudbaseInit.
PS > curl.exe -L https://cloudbase.it/downloads/CloudbaseInitSetup_Stable_x64.msi -o cloudbaseinit.msi
PS > ./cloudbaseinit.msi
[7] Check boxes all to shutdown Windows after running Sysprep and Click the [Finish] button.
[8] Add Windows image to Glance.
[root@dlp ~(keystone)]#
openstack image create "Win2k22" --file /var/kvm/images/Win2k22.img --disk-format qcow2 --container-format bare --public
# if you installed Windows with secure boot, add properties like follows

[root@dlp ~(keystone)]#
openstack image create "Win2k22" --file /var/kvm/images/Win2k22.img --disk-format qcow2 --container-format bare --public \
--property hw_firmware_type=uefi --property hw_machine_type=q35 --property os_secure_boot=optional

[9] Create Windows instance with an Openstack user.
[cent@dlp ~(keystone)]$
openstack flavor list

+----+-----------+------+------+-----------+-------+-----------+
| ID | Name      |  RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+------+------+-----------+-------+-----------+
| 1  | m1.small  | 2048 |   10 |         0 |     1 | True      |
| 2  | m1.medium | 4096 |   10 |         0 |     2 | True      |
| 3  | m1.large  | 8192 |   10 |         0 |     4 | True      |
| 4  | m2.large  | 8192 |   10 |        10 |     4 | True      |
| 5  | m3.large  | 8192 |   50 |         0 |     4 | True      |
+----+-----------+------+------+-----------+-------+-----------+

[cent@dlp ~(keystone)]$
openstack image list

+--------------------------------------+----------------+--------+
| ID                                   | Name           | Status |
+--------------------------------------+----------------+--------+
| bcbaa323-2438-4f5e-9473-49f633bb8f9b | CentOS-Stream9 | active |
| 008e36d9-3623-4368-b344-2dd2d2d49ecd | Win2k22        | active |
+--------------------------------------+----------------+--------+

[cent@dlp ~(keystone)]$
openstack security group list

+--------------------------------------+------------+------------------------+----------------------------------+------+
| ID                                   | Name       | Description            | Project                          | Tags |
+--------------------------------------+------------+------------------------+----------------------------------+------+
| 163790db-7ca5-42e1-a6e7-70679409e2b3 | default    | Default security group | f4598dfd3b8a47149234b6892d18d5a4 | []   |
| d295a858-1d51-4e15-a1e9-eb13adcf7861 | secgroup01 | secgroup01             | f4598dfd3b8a47149234b6892d18d5a4 | []   |
+--------------------------------------+------------+------------------------+----------------------------------+------+

[cent@dlp ~(keystone)]$
openstack network list

+--------------------------------------+------------+--------------------------------------+
| ID                                   | Name       | Subnets                              |
+--------------------------------------+------------+--------------------------------------+
| ec214091-7285-400b-8efe-5c4e566c51d7 | sharednet1 | 9544c8bf-c77b-4cee-a686-3a6cb1a39a8f |
+--------------------------------------+------------+--------------------------------------+

[cent@dlp ~(keystone)]$
netID=$(openstack network list | grep sharednet1 | awk '{ print $2 }')
# [admin_pass=***] : set any Administrator password

[cent@dlp ~(keystone)]$
openstack server create --flavor m3.large --image Win2k22 --security-group secgroup01 --nic net-id=$netID --property admin_pass="P@ssw0rd01" Windows-2022
[cent@dlp ~(keystone)]$
openstack server list

+--------------------------------------+--------------+---------+-----------------------+----------------+-----------+
| ID                                   | Name         | Status  | Networks              | Image          | Flavor    |
+--------------------------------------+--------------+---------+-----------------------+----------------+-----------+
| e7e2c624-1e1a-4ade-bd2b-79f1367c0af1 | Windows-2022 | ACTIVE  | sharednet1=10.0.0.230 | Win2k22        | m3.large  |
| 37f143ed-bd44-48eb-97cd-2062951f0806 | CentOS-St9   | SHUTOFF | sharednet1=10.0.0.210 | CentOS-Stream9 | m1.medium |
+--------------------------------------+--------------+---------+-----------------------+----------------+-----------+

[cent@dlp ~(keystone)]$
openstack console url show Windows-2022

+----------+-----------------------------------------------------------------------------------------------+
| Field    | Value                                                                                         |
+----------+-----------------------------------------------------------------------------------------------+
| protocol | vnc                                                                                           |
| type     | novnc                                                                                         |
| url      | https://dlp.srv.world:6080/vnc_auto.html?path=%3Ftoken%3D1480bf1c-d903-46da-a68b-13b6f9c344e5 |
+----------+-----------------------------------------------------------------------------------------------+
[10] It needs to change admin password when initial logon.
The current password is the one you set on [openstack server create] command.
[11] That's OK if you logon successfully after changing password.
Matched Content