OpenStack Flamingo : Create Instances (Windows)2025/11/20 |
|
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/lib/libvirt/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/lib/libvirt/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/OVMF/OVMF_CODE_4M.secboot.fd,loader_ro=yes,loader_type=pflash,nvram_template=/usr/share/OVMF/OVMF_VARS_4M.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/lib/libvirt/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/lib/libvirt/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. |
|
ubuntu@dlp ~(keystone)$ openstack flavor list +----+-----------+-------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public | +----+-----------+-------+------+-----------+-------+-----------+ | 1 | m1.tiny | 2048 | 10 | 0 | 1 | True | | 2 | m1.small | 4096 | 10 | 0 | 2 | True | | 3 | m1.medium | 8192 | 10 | 0 | 4 | True | | 4 | m1.large | 16384 | 10 | 0 | 8 | True | | 5 | m2.medium | 8192 | 10 | 10 | 4 | True | | 6 | m3.medium | 8192 | 50 | 0 | 4 | True | +----+-----------+-------+------+-----------+-------+-----------+ubuntu@dlp ~(keystone)$ openstack image list +--------------------------------------+------------+--------+ | ID | Name | Status | +--------------------------------------+------------+--------+ | c8be4fc8-a3f7-4859-9ae7-8b3843baa619 | Ubuntu2404 | active | | 3e2d2dfb-88c0-46a5-8d17-3fa116bd56bd | Win2k22 | active | +--------------------------------------+------------+--------+ubuntu@dlp ~(keystone)$ openstack security group list +---------------+------------+---------------+-----------------+------+--------+ | ID | Name | Description | Project | Tags | Shared | +---------------+------------+---------------+-----------------+------+--------+ | 9a3074bf- | default | Default | b45ce8ac12c749e | [] | False | | 6ba2-4185- | | security | 49e933c84334e79 | | | | 9b16- | | group | de | | | | fccf852218a0 | | | | | | | fa4b5619- | secgroup01 | secgroup01 | b45ce8ac12c749e | [] | False | | af27-46a2- | | | 49e933c84334e79 | | | | 97f2- | | | de | | | | 43b67bc91070 | | | | | | +---------------+------------+---------------+-----------------+------+--------+ubuntu@dlp ~(keystone)$ openstack network list +--------------------------------+------------+--------------------------------+ | ID | Name | Subnets | +--------------------------------+------------+--------------------------------+ | 1a0fa146-6b84-4570-8c02- | sharednet1 | 80702b4b-1830-4c5b-bc9b- | | 30b980c402e8 | | 77378f4b16ef | +--------------------------------+------------+--------------------------------+
ubuntu@dlp ~(keystone)$
netID=$(openstack network list | grep sharednet1 | awk '{ print $2 }')
# [admin_pass=***] : set any Administrator password ubuntu@dlp ~(keystone)$ openstack server create --flavor m3.medium --image Win2k22 --security-group secgroup01 --nic net-id=$netID --property admin_pass="P@ssw0rd01" Windows-2022
openstack server list +-------------+-------------+---------+---------------+------------+-----------+ | ID | Name | Status | Networks | Image | Flavor | +-------------+-------------+---------+---------------+------------+-----------+ | dfa4ed6c- | Windows- | ACTIVE | sharednet1=10 | Win2k22 | m3.medium | | dd7e-41c5- | 2022 | | .0.0.249 | | | | 85ea- | | | | | | | 068f7853a57 | | | | | | | f | | | | | | | 66db9dc2- | Ubuntu-2404 | SHUTOFF | sharednet1=10 | Ubuntu2404 | m1.small | | 0001-4e71- | | | .0.0.233 | | | | 807d- | | | | | | | 1b55d353a90 | | | | | | | c | | | | | | +-------------+-------------+---------+---------------+------------+-----------+ubuntu@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%3D466581bc | | | -3850-458f-b5a2-400513b679a7 | +----------+-------------------------------------------------------------------+ |
| [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. |
|
| Sponsored Link |
|
|