From 2fd1b248abd9c38b4fe4c7044b5404cb791a828d Mon Sep 17 00:00:00 2001 From: David Seelbach Date: Thu, 30 Oct 2025 13:53:55 +0100 Subject: [PATCH 1/5] add win img section add how to use win images --- docs/_openstack/specs/images/index.de.md | 41 ++++++++++++++++++++++ docs/_openstack/specs/images/index.en.md | 43 ++++++++++++++++++++++++ 2 files changed, 84 insertions(+) diff --git a/docs/_openstack/specs/images/index.de.md b/docs/_openstack/specs/images/index.de.md index fa80134e..9734da39 100644 --- a/docs/_openstack/specs/images/index.de.md +++ b/docs/_openstack/specs/images/index.de.md @@ -41,6 +41,47 @@ OpenStack und viele Deployment-Tools unterstützen die Verwendung dieser Images Alle von uns zur Verfügung gestellten Linux-Images sind unmodifiziert und kommen direkt von ihren offiziellen Maintainern. Wir testen sie während des Upload-Prozesses auf Kompatibilität. +## Windows-Images + +Wir stellen folgende Windows-Images zur Verfügung: + +- Windows Server 2022 GUI +- Windows Server 2025 GUI + +### Verwendung von Windows-Images: + +Windows-Images unterstützen das automatische Zurücksetzen des Administrator-Passworts über Instanz-Metadaten: + +- Fügen Sie den Metadaten-Schlüssel `admin_pass` mit einem gewünschten Passwort hinzu. +- Nach dem Neustart der Instanz wird das Administrator-Passwort auf den angegebenen Wert gesetzt. + +{: .warning } + +Entfernen Sie die Metadaten nach der Erstkonfiguration. Die Metadaten sind **nicht verschlüsselt** und sollten nur für die initiale Passwortvergabe verwendet werden. + +Beispiel: + +``` +openstack server set --property admin_pass='MeinSicheresPasswort123' INSTANCE_NAME +``` + +- Das Passwort wird nach dem nächsten Neustart angewendet. +- Entfernen Sie anschließend die Metadaten, um die Instanz zu sichern: + +``` +openstack server unset --property admin_pass INSTANCE_NAME +``` + +Alternativ können Sie das Administrator-Passwort direkt innerhalb der Instanz über PowerShell setzen: + +``` +PS C:\Users\Administrator> $Password = Read-Host -AsSecureString +********** +PS C:\Users\Administrator> Set-LocalUser -Name Administrator -Password $Password +``` + +Diese Methode vermeidet, dass das Passwort in unverschlüsselten Metadaten gespeichert wird. + ## Upload von eigenen Images Sie können jederzeit Ihre eigenen Images hochladen, anstatt die von uns bereit gestellten zu nutzen. Am einfachsten funktioniert das über die OpenStack-CLI. diff --git a/docs/_openstack/specs/images/index.en.md b/docs/_openstack/specs/images/index.en.md index 603e62e3..c7d8c350 100644 --- a/docs/_openstack/specs/images/index.en.md +++ b/docs/_openstack/specs/images/index.en.md @@ -32,6 +32,8 @@ The current list of images is as follows: - CoreOS (stable) - Rocky Linux 9 - Flatcar Linux +- Windows Server 2022 GUI +- Windows Server 2025 GUI These images are checked for new releases daily. The latest available version is always a public image, and contains the `Latest`-suffix. All previous versions of an imags are automatically converted to "community images", renamed (`Latest` is replaced by the date of the first upload), and eventially deleted if they are no longer in use at all. @@ -41,6 +43,47 @@ OpenStack and many deployment tools support using these images either by name or All of our provided linux images are unmodified and come directly from their official maintainers. We test them during the upload process to ensure they are deployable. +## Windows Images + +We provide the following Windows images: + +- Windows Server 2022 GUI +- Windows Server 2025 GUI + +### Using Windows images: + +Windows images support automatic password reset using instance metadata: + +- Add metadata key `admin_pass` with a desired password. +- After the instance reboots, the Administrator password is set to the provided value. + +{: .warning } + +Remove the metadata after the initial setup. The metadata is **not encrypted** and should only be used for initial password setup. + +Example: + +``` +openstack server set --property admin_pass='MySecurePassword123' INSTANCE_NAME +``` + +- The password will be applied after the next reboot. +- Remove metadata afterwards to secure the instance: + +``` +openstack server unset --property admin_pass INSTANCE_NAME +``` + +Alternatively, you can set the Administrator password directly inside the instance using PowerShell: + +``` +PS C:\Users\Administrator> $Password = Read-Host -AsSecureString +********** +PS C:\Users\Administrator> Set-LocalUser -Name Administrator -Password $Password +``` + +This method avoids storing the password in unencrypted metadata. + ## Uploading your own images Instead of using the images we provide, you can upload your own images. Easiest way of doing so is to use the OpenStack CLI. From 08c1a77a1cd4be6188b22ad1d9e21c0217e0286c Mon Sep 17 00:00:00 2001 From: David Seelbach Date: Thu, 30 Oct 2025 13:55:10 +0100 Subject: [PATCH 2/5] add win img to changelog TBA --- docs/_openstack/changelog/index.en.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_openstack/changelog/index.en.md b/docs/_openstack/changelog/index.en.md index 73d66b64..fdc37c38 100644 --- a/docs/_openstack/changelog/index.en.md +++ b/docs/_openstack/changelog/index.en.md @@ -14,6 +14,7 @@ Notable Changes on the OpenStack Platform are documented here. ### To be announced - Local Storage Flavor Availability +- Windows Images GA --- From edd3a98184f3649def6049ef82647874f2cc5b46 Mon Sep 17 00:00:00 2001 From: David Seelbach Date: Thu, 30 Oct 2025 15:31:21 +0100 Subject: [PATCH 3/5] add password set via ssh and powershell --- docs/_openstack/specs/images/index.de.md | 16 +++++++++++++++- docs/_openstack/specs/images/index.en.md | 16 +++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/docs/_openstack/specs/images/index.de.md b/docs/_openstack/specs/images/index.de.md index 9734da39..91d2711a 100644 --- a/docs/_openstack/specs/images/index.de.md +++ b/docs/_openstack/specs/images/index.de.md @@ -72,9 +72,23 @@ openstack server set --property admin_pass='MeinSicheresPasswort123' INSTANCE_NA openstack server unset --property admin_pass INSTANCE_NAME ``` -Alternativ können Sie das Administrator-Passwort direkt innerhalb der Instanz über PowerShell setzen: +Alternativ können Sie sich über SSH und die Floating IP verbinden und das Administrator-Passwort direkt innerhalb der Instanz setzen: ``` +ssh $FLOATING_IP -l Administrator +``` + +{: .note } + +Wenn Sie beim Verbindungsaufbau per SSH zur Eingabe eines Passworts aufgefordert werden, warten Sie bitte noch einen Moment. Zu diesem Zeitpunkt sind die Hintergrundprozesse der Instanz möglicherweise noch nicht vollständig abgeschlossen. + +``` +administrator@win-server C:\Users\Administrator> powershell +Windows PowerShell +Copyright (C) Microsoft Corporation. All rights reserved. + +Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows + PS C:\Users\Administrator> $Password = Read-Host -AsSecureString ********** PS C:\Users\Administrator> Set-LocalUser -Name Administrator -Password $Password diff --git a/docs/_openstack/specs/images/index.en.md b/docs/_openstack/specs/images/index.en.md index c7d8c350..79e03995 100644 --- a/docs/_openstack/specs/images/index.en.md +++ b/docs/_openstack/specs/images/index.en.md @@ -74,9 +74,23 @@ openstack server set --property admin_pass='MySecurePassword123' INSTANCE_NAME openstack server unset --property admin_pass INSTANCE_NAME ``` -Alternatively, you can set the Administrator password directly inside the instance using PowerShell: +Alternatively, you can connect via SSH and the floating IP to set the Administrator password directly inside the instance: ``` +ssh $FLOATING_IP -l Administrator +``` + +{: .note } + +If you are prompted for a password when connecting via SSH, please wait a little longer. At that point, the background initialization processes of the instance may not yet be fully completed. + +``` +administrator@win-server C:\Users\Administrator> powershell +Windows PowerShell +Copyright (C) Microsoft Corporation. All rights reserved. + +Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows + PS C:\Users\Administrator> $Password = Read-Host -AsSecureString ********** PS C:\Users\Administrator> Set-LocalUser -Name Administrator -Password $Password From 68065dd1cc643489404f1daca91ec1038abab23c Mon Sep 17 00:00:00 2001 From: David Seelbach Date: Mon, 3 Nov 2025 12:55:33 +0100 Subject: [PATCH 4/5] hint for password caomplexity --- docs/_openstack/specs/images/index.de.md | 11 ++++++++++- docs/_openstack/specs/images/index.en.md | 13 +++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/docs/_openstack/specs/images/index.de.md b/docs/_openstack/specs/images/index.de.md index 91d2711a..c15472d6 100644 --- a/docs/_openstack/specs/images/index.de.md +++ b/docs/_openstack/specs/images/index.de.md @@ -80,7 +80,16 @@ ssh $FLOATING_IP -l Administrator {: .note } -Wenn Sie beim Verbindungsaufbau per SSH zur Eingabe eines Passworts aufgefordert werden, warten Sie bitte noch einen Moment. Zu diesem Zeitpunkt sind die Hintergrundprozesse der Instanz möglicherweise noch nicht vollständig abgeschlossen. +> Wenn Sie beim Verbindungsaufbau per SSH zur Eingabe eines Passworts aufgefordert werden, warten Sie bitte noch einen Moment. Zu diesem Zeitpunkt sind die Hintergrundprozesse der Instanz möglicherweise noch nicht vollständig abgeschlossen. +> +> Das zu setzende Passwort muss den Standard-Komplexitätsregeln von Windows Server entsprechen. Es muss Zeichen aus mindestens drei der folgenden vier Kategorien enthalten: +> +> - Großbuchstaben (A–Z) +> - Kleinbuchstaben (a–z) +> - Ziffern (0–9) +> - Sonderzeichen (z. B. !, $, #, %) +> +> Weitere Informationen finden Sie in der [Microsoft-Dokumentation](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh994562(v=ws.11)) ``` administrator@win-server C:\Users\Administrator> powershell diff --git a/docs/_openstack/specs/images/index.en.md b/docs/_openstack/specs/images/index.en.md index 79e03995..d900bf5f 100644 --- a/docs/_openstack/specs/images/index.en.md +++ b/docs/_openstack/specs/images/index.en.md @@ -64,7 +64,7 @@ Remove the metadata after the initial setup. The metadata is **not encrypted** a Example: ``` -openstack server set --property admin_pass='MySecurePassword123' INSTANCE_NAME +openstack server set --property admin_pass='MySecurePassword123!' INSTANCE_NAME ``` - The password will be applied after the next reboot. @@ -82,7 +82,16 @@ ssh $FLOATING_IP -l Administrator {: .note } -If you are prompted for a password when connecting via SSH, please wait a little longer. At that point, the background initialization processes of the instance may not yet be fully completed. +> If you are prompted for a password when connecting via SSH, please wait a little longer. At that point, the background initialization processes of the instance may not yet be fully completed. +> +> The password you set must comply with Windows Server’s default complexity requirements. It must contain characters from at least three of the following four categories: +> +> - Uppercase letters (A–Z) +> - Lowercase letters (a–z) +> - Digits (0–9) +> - Special characters (e.g., !, $, #, %) +> +> For more information, see the [Microsoft documentation](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh994562(v=ws.11)). ``` administrator@win-server C:\Users\Administrator> powershell From 7dcad17d56ce1fbf758e415add7868881c202111 Mon Sep 17 00:00:00 2001 From: David Seelbach Date: Wed, 12 Nov 2025 11:39:18 +0100 Subject: [PATCH 5/5] Own Images Section - changed wording - added de/en - UEFI properties --- docs/_openstack/specs/images/index.de.md | 45 ++++++++++++++---------- docs/_openstack/specs/images/index.en.md | 45 +++++++++++++++--------- 2 files changed, 55 insertions(+), 35 deletions(-) diff --git a/docs/_openstack/specs/images/index.de.md b/docs/_openstack/specs/images/index.de.md index c15472d6..9905b4fe 100644 --- a/docs/_openstack/specs/images/index.de.md +++ b/docs/_openstack/specs/images/index.de.md @@ -105,31 +105,40 @@ PS C:\Users\Administrator> Set-LocalUser -Name Administrator -Password $Password Diese Methode vermeidet, dass das Passwort in unverschlüsselten Metadaten gespeichert wird. -## Upload von eigenen Images +## Eigene Images in OpenStack hochladen -Sie können jederzeit Ihre eigenen Images hochladen, anstatt die von uns bereit gestellten zu nutzen. Am einfachsten funktioniert das über die OpenStack-CLI. +Sie können eigene Images hochladen, anstatt die bereitgestellten zu verwenden. Die einfachste Methode ist über die OpenStack CLI. ```bash openstack image create \ - --property hw_disk_bus=scsi \ - --property hw_qemu_guest_agent=True \ - --property hw_scsi_model=virtio-scsi \ - --property os_require_quiesce=True \ - --private \ - --disk-format qcow2 \ - --container-format bare \ - --file ~/my-image.qcow2 \ - my-image + --property hw_disk_bus=scsi \ # Art des Disk-Busses + --property hw_qemu_guest_agent=True \ # Ermöglicht Snapshots laufender VMs + --property hw_scsi_model=virtio-scsi \ # SCSI-Modell + --property os_require_quiesce=True \ # Erfordert Quiesce für Snapshots + --private \ # Image privat halten + --disk-format qcow2 \ # Image-Format + --container-format bare \ # Container-Format + --file ~/mein-image.qcow2 \ # Quelle des Images auf dem lokalen Rechner + mein-image # Name des Images ``` -Dabei müssen mindestens folgende Parameter spezifiziert werden: +**Mindestens erforderliche Felder für `openstack image create`:** -- `--disk-format`: Das Format Ihres Quell-Images, z.B. `qcow2` -- `--file`: Das Quell-Image auf Ihrem System -- Name des Abbilds: `my-image` als Beispiel. +- `--disk-format`: z.B. qcow2; hängt vom Image-Format ab. +- `--file`: Pfad zur Quelldatei des Images auf Ihrem Rechner. +- Name des Images: z.B. `mein-image`. -Um die Erstellung von Snapshots für laufende Instanzen zu ermöglichen ist es notwendig, dass Sie das Property `--property hw_qemu_guest_agent=True` an den von Ihnen genutzten Images setzen und `qemu-guest-agent` auf dem System installieren. +Um Snapshots laufender Instanzen zu erstellen, empfehlen wir, beim Erstellen des Images `--property hw_qemu_guest_agent=True` zu setzen und den `qemu-guest-agent` im Image zu installieren. Weitere Details finden Sie in unserer [FAQ](https://docs.wiit-cloud.io/de/openstack/faq/#warum-kann-ich-keinen-snapshot-einer-laufenden-instance-erstellen). -Weitere Details finden Sie in unseren [FAQ](https://docs.wiit-cloud.io/de/openstack/faq/#warum-kann-ich-keinen-snapshot-einer-laufenden-instance-erstellen). +### UEFI-Images -Das gleiche funktioniert auch über das Dashboard. Achten Sie hier darauf, alle der obigen Parameter anzugeben. +Wenn Ihr Image einen UEFI-Boot benötigt (z.B. moderne Windows-Versionen oder einige Linux-Distributionen), müssen beim Erstellen des Images folgende Eigenschaften gesetzt werden: + +``` +--property hw_machine_type='q35' \ +--property hw_firmware_type='uefi' +``` + +Diese Einstellungen stellen sicher, dass die VM den Maschinentyp Q35 und die UEFI-Firmware anstelle des Legacy-BIOS verwendet. + +Sie können Images auch über das OpenStack Dashboard hochladen. Stellen Sie sicher, dass Sie dort die gleichen Eigenschaften wie in der CLI setzen. diff --git a/docs/_openstack/specs/images/index.en.md b/docs/_openstack/specs/images/index.en.md index d900bf5f..917d5b87 100644 --- a/docs/_openstack/specs/images/index.en.md +++ b/docs/_openstack/specs/images/index.en.md @@ -107,29 +107,40 @@ PS C:\Users\Administrator> Set-LocalUser -Name Administrator -Password $Password This method avoids storing the password in unencrypted metadata. -## Uploading your own images +## Uploading Your Own Images to OpenStack -Instead of using the images we provide, you can upload your own images. Easiest way of doing so is to use the OpenStack CLI. +You can upload your own custom images instead of using the ones provided. The easiest method is via the OpenStack CLI. ```bash openstack image create \ - --property hw_disk_bus=scsi \ - --property hw_qemu_guest_agent=True \ - --property hw_scsi_model=virtio-scsi \ - --property os_require_quiesce=True \ - --private \ - --disk-format qcow2 \ - --container-format bare \ - --file ~/my-image.qcow2 \ - my-image + --property hw_disk_bus=scsi \ # Disk bus type + --property hw_qemu_guest_agent=True \ # Enables snapshotting of running VMs + --property hw_scsi_model=virtio-scsi \ # SCSI model + --property os_require_quiesce=True \ # Requires quiesce for snapshots + --private \ # Keep image private + --disk-format qcow2 \ # Image format + --container-format bare \ # Container format + --file ~/my-image.qcow2 \ # Source image file + my-image # Name of the image ``` -The command to upload images requires these fields at a minimum: +**Minimum required fields for `openstack image create`:** -- `--disk-format`: qcow2, in this case. This depends on the image format. -- `--file`: The source file on your machine -- Name of the Image: `my-image` for example. +- `--disk-format`: e.g., qcow2; depends on your image format. +- `--file`: Path to the source image file on your machine. +- Image name: e.g., `my-image`. -Additionally, to enable the creation of Snapshots on running Instances, we recommend that you set `--property hw_qemu_guest_agent=True` on the images you create, and to install the `qemu-guest-agent` upon creation of the new image. See our [FAQ](https://docs.wiit-cloud.io/de/openstack/faq/#why-am-i-unable-to-create-a-snapshot-of-a-running-instance) for more details. +To enable snapshot creation on running instances, we recommend setting `--property hw_qemu_guest_agent=True` when creating the image, and installing the `qemu-guest-agent` inside the image. See our [FAQ](https://docs.wiit-cloud.io/de/openstack/faq/#why-am-i-unable-to-create-a-snapshot-of-a-running-instance) for more details. -You can also use the dashboard to upload images. Make sure to use the same properties there. +### UEFI Images + +If your image requires UEFI boot (for example, modern Windows or some Linux distributions), you must set the following properties when creating the image: + +``` +--property hw_machine_type='q35' \ +--property hw_firmware_type='uefi' +``` + +These settings ensure the VM uses a Q35 machine type and UEFI firmware instead of the legacy BIOS. + +You can also upload images via the OpenStack Dashboard. Ensure that you apply the same properties as you would in the CLI.