OpenStack Antelope : Create Instances (Windows)2023/04/17 |
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 | 20 | 0 | 4 | True | | 4 | m2.large | 8192 | 50 | 0 | 4 | True | +----+-----------+------+------+-----------+-------+-----------+[cent@dlp ~(keystone)]$ openstack image list +--------------------------------------+----------------+--------+ | ID | Name | Status | +--------------------------------------+----------------+--------+ | 6afab1f1-c2e0-42c5-9c86-659f56174b9d | CentOS-Stream9 | active | | e3f4cfef-cf90-4f08-a618-eba1cdb7750b | Win2k22 | active | +--------------------------------------+----------------+--------+[cent@dlp ~(keystone)]$ openstack security group list +--------------------------------------+------------+------------------------+----------------------------------+------+ | ID | Name | Description | Project | Tags | +--------------------------------------+------------+------------------------+----------------------------------+------+ | 340b7b87-9f3f-430c-8f22-267d1c663865 | default | Default security group | 17b52bb0db9440549d400290cec02c1d | [] | | c761c71b-265d-4802-9c7d-0b85e0680e06 | secgroup01 | secgroup01 | 17b52bb0db9440549d400290cec02c1d | [] | +--------------------------------------+------------+------------------------+----------------------------------+------+[cent@dlp ~(keystone)]$ openstack network list +--------------------------------------+------------+--------------------------------------+ | ID | Name | Subnets | +--------------------------------------+------------+--------------------------------------+ | b176d051-6a33-4b77-9cfd-13d86b51f657 | sharednet1 | 0a491127-28f7-4c9c-b7d3-8b8f449912a0 | +--------------------------------------+------------+--------------------------------------+
[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 m2.large --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 | +--------------------------------------+--------------+--------+-----------------------+---------+----------+ | 9dbf1317-13cd-472a-8959-3a7f58d95685 | Windows-2022 | ACTIVE | sharednet1=10.0.0.230 | Win2k22 | m2.large | +--------------------------------------+--------------+--------+-----------------------+---------+----------+[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%3Daa963a3a-2967-44b3-8341-b372244c2734 | +----------+-----------------------------------------------------------------------------------------------+ |
[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 |