Pour créer une VM Windows sur Google Cloud, vous devez utiliser une image de VM sur laquelle Windows ou Windows Server est préinstallé. Google Cloud fournit des images publiques pour les versions de Windows Server couramment utilisées, mais ces images ne conviennent qu'aux licences à la demande. Pour utiliser votre propre licence Windows (BYOL), vous devez importer une image existante ou compiler une image personnalisée.
Ce guide explique comment créer une image personnalisée à l'aide des mêmes outils et processus que ceux utilisés par Google Cloud pour créer des images publiques.
Pour suivre ce guide, vous aurez besoin des ressources suivantes :
- Un fichier ISO contenant le support d'installation Windows ou Windows Server
- (Facultatif) Un ou plusieurs packages de mises à jour Windows (au format
.msu
) à appliquer à l'image
Avant de commencer
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud.
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Créer un disque
- Extraire l'image Windows (
install.wim
du support d'installation) sur le disque - Ajouter les pilotes nécessaires, configurer l'installation de Windows de sorte qu'elle s'exécute sans surveillance et rendre le disque amorçable
- Effectuer le démarrage à partir du nouveau disque pour exécuter l'installation de Windows
- Installer des logiciels supplémentaires, y compris l'agent d'OS invité
- Créer une image à partir du disque
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API, Cloud Build API, and Cloud Storage API APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API, Cloud Build API, and Cloud Storage API APIs.
- Sur votre ordinateur local, ouvrez une fenêtre Windows PowerShell.
Initialisez une variable :
$PROJECT_ID = "
PROJECT_ID
"où
PROJECT_ID
correspond à l'ID du projet Google Cloud créé dans la section précédente.Initialisez une autre variable contenant le numéro du projet :
$PROJECT_NUMBER = gcloud projects describe $PROJECT_ID --format=value`(projectNumber`)
- Sur votre ordinateur local, ouvrez une fenêtre de terminal.
Initialisez une variable :
PROJECT_ID=
PROJECT_ID
où
PROJECT_ID
correspond à l'ID du projet Google Cloud créé dans la section précédente.Initialisez une autre variable contenant le numéro du projet :
PROJECT_NUMBER=`gcloud projects describe $PROJECT_ID --format=value\(projectNumber\)`
Sur votre ordinateur local, téléchargez les packages d'installation requis :
Créez un bucket Cloud Storage pour stocker les fichiers d'installation :
gcloud storage buckets create gs://$PROJECT_ID-media --project=$PROJECT_ID
Attribuez le rôle Lecteur des objets Storage à Cloud Build pour l'autoriser à lire les fichiers d'installation :
gcloud storage buckets add-iam-policy-binding gs://$PROJECT_ID-media --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com --role=roles/storage.objectViewer
Importez le package d'installation PowerShell :
gcloud storage cp
POWERSHELL_PACKAGE
gs://$PROJECT_ID-media/PowerShell.msioù
POWERSHELL_PACKAGE
est le chemin d'accès au package d'installation PowerShell.Importez le package d'installation .NET Framework :
gcloud storage cp
DOTNET_PACKAGE
gs://$PROJECT_ID-media/dotnet-sdk.exeoù
DOTNET_PACKAGE
est le chemin d'accès au package d'installation .NET Framework.Importez le package d'installation de gcloud CLI :
gcloud storage cp
CLOUDSDK_PACKAGE
gs://$PROJECT_ID-media/GoogleCloudSDKInstaller.exeoù
CLOUDSDK_PACKAGE
est le chemin d'accès au package d'installation de gcloud CLI.Importez le fichier ISO contenant le support d'installation Windows :
gcloud storage cp
ISO
gs://$PROJECT_ID-media/où
ISO
est le nom du fichier ISO.Vous pouvez également importer des packages de mises à jour supplémentaires :
gcloud storage cp
UPDATE_DIR
/*.msu gs://$PROJECT_ID-media/updates/où
UPDATE_DIR
est le répertoire contenant les packages de mises à jour.Sur votre ordinateur local, clonez le dépôt Git qui contient les workflows
daisy
permettant de compiler les images Windows :git clone https://github.com/GoogleCloudPlatform/compute-image-tools.git
Accédez au répertoire
windows
:cd compute-image-tools/daisy_workflows/image_build/windows/
Un ensemble de fichiers portant le suffixe
.wf.json
se trouvent dans le répertoirewindows
. Ces fichiers contiennent les définitions des workflows Daisy pour les versions de Windows couramment utilisées :Version de Windows Fichier de workflow Windows Server Core 2022 (64 bits) windows-server-2022-dc-core-uefi-byol.wf.json
Windows Server 2019 (64 bits) windows-server-2019-dc-uefi-byol.wf.json
Windows Server Core 2019 (64 bits) windows-server-2019-dc-core-uefi-byol.wf.json
Windows Server 2016 (64 bits) windows-server-2016-dc-uefi-byol.wf.json
Windows Server Core 2016 (64 bits) windows-server-2016-dc-core-uefi-byol.wf.json
Windows 11 21H2 (64 bits) windows-11-21h2-ent-x64-uefi.wf.json
Windows 11 22H2 (64 bits) windows-11-22h2-ent-x64-uefi.wf.json
Windows 11 23H2 (64 bits) windows-11-23h2-ent-x64-uefi.wf.json
Windows 10 21H2 (64 bits) windows-10-21h2-ent-x64-uefi.wf.json
Windows 10 22H2 (64 bits) windows-10-22h2-ent-x64-uefi.wf.json
Ouvrez le fichier de workflow correspondant le plus à la version de Windows que vous souhaitez installer. Si nécessaire, modifiez les paramètres de l'édition Windows (
edition
) et de la clé de licence (product_key
) dans les fichiers de workflow afin qu'ils correspondent à votre support d'installation.Si vous n'êtes pas sûr du nom correct de l'édition, ouvrez une invite PowerShell avec élévation de privilèges et exécutez les commandes suivantes pour répertorier toutes les éditions compatibles avec le support d'installation :
$IsoFile = "
ISO
" $Mount = Mount-DiskImage -ImagePath (Resolve-Path $IsoFile) $DriveLetter = ($Mount | Get-Volume).DriveLetter Get-WindowsImage -ImagePath "$($DriveLetter):\sources\install.wim" | select ImageName Dismount-DiskImage -InputObject $Mount | Out-NullRemplacez
ISO
par le chemin d'accès local à l'image ISO.Dans le répertoire
windows
, créez un fichier nommécloudbuild.yaml
et collez le code suivant :timeout: 14400s # 4 hour timeout for entire build steps: - name: 'gcr.io/compute-image-tools/daisy' timeout: 14400s # 4 hour timeout for build step waitFor: ['-'] args: - -project=$PROJECT_ID - -zone=us-central1-a - -var:updates=gs://$PROJECT_ID-media/updates/ - -var:pwsh=gs://$PROJECT_ID-media/PowerShell.msi - -var:dotnet48=gs://$PROJECT_ID-media/dotnet-sdk.exe - -var:cloudsdk=gs://$PROJECT_ID-media/GoogleCloudSDKInstaller.exe - -var:media=gs://$PROJECT_ID-media/
ISO
-WORKFLOW
Remplacez :
ISO
: nom du fichier ISO sur Cloud Storage.WORKFLOW
: nom du fichier de workflow correspondant à la version de Windows que vous utilisez.
Envoyez le build à Cloud Build :
gcloud builds submit --project $PROJECT_ID --async
La compilation prend environ quatre heures. Vous pouvez suivre l'état de la compilation dans la console Google Cloud sous Cloud Build > Historique.
- Vérifiez que vous avez importé les packages d'installation et le fichier ISO appropriés.
- Vérifiez que vous avez sélectionné un workflow correspondant à la version Windows du fichier ISO.
- Consultez le journal des builds dans Cloud Build et vérifiez s'il existe des messages d'erreur.
- Si le build semble bloqué, examinez la sortie du port série de l'instance de VM créée par le build et recherchez les messages d'erreur.
- Apprenez-en plus sur l'outil daisy.
- Apprenez-en plus sur les workflows daisy pour la création d'images.
- Découvrez comment transférer des licences existantes vers Compute Engine.
- Découvrez les bonnes pratiques d'utilisation des familles d'images.
Comprendre le processus de compilation
Pour installer entièrement Windows, une approche courante consiste à démarrer un ordinateur à partir d'un fichier DVD ou ISO contenant les fichiers d'installation de Windows. Contrairement à certains hyperviseurs sur site, Compute Engine ne permet pas de le démarrer à partir d'un fichier ISO.
Pour installer Windows, vous devez donc suivre une autre approche qui implique les étapes suivantes:
Au lieu d'effectuer manuellement ces étapes, ce guide vous explique comment automatiser le processus à l'aide de Cloud Build, de l'outil
daisy
et des workflows de référence disponibles sur GitHub.daisy
est un outil de ligne de commande Open Source permettant d'exécuter des workflows. Les workflows sont créés sous forme de fichiers JSON et contiennent une séquence d'étapes. Chaque étape décrit une opération Compute Engine, comme la création d'un disque ou l'arrêt d'une instance de VM. Les workflows daisy sont donc parfaitement adaptés pour automatiser les étapes requises pour compiler une image Windows.Les workflows daisy permettant de compiler des images Windows personnalisées créent deux instances de VM temporaires. La première instance de VM (avec le préfixe
bootstrap
) effectue les étapes nécessaires pour créer un disque de démarrage. La deuxième instance de VM (avec le préfixeinstall
) exécute l'installation de Windows et effectue toutes les étapes restantes.Préparer le projet pour créer des images
Pour éviter que l'outil daisy n'interfère avec vos instances de VM ou votre infrastructure existantes, créez un projet dédié à la compilation d'images :
Les étapes suivantes diffèrent selon que vous utilisez Windows ou Linux sur votre ordinateur local :
Windows
Linux
Importer des fichiers d'installation
Vous allez maintenant rassembler tous les fichiers d'installation requis pour l'image personnalisée et les importer dans un bucket Cloud Storage. Le stockage des fichiers dans un bucket Cloud Storage permet de s'assurer qu'ils sont accessibles par
daisy
et par les instances de VM temporaires utilisées pardaisy
pour compiler l'image.Vous êtes maintenant prêt à compiler l'image personnalisée.
Créer l'image
L'exécution du workflow
daisy
permettant de compiler une image personnalisée peut prendre jusqu'à quatre heures. Au lieu d'exécuterdaisy
en local, vous allez créer une configuration Cloud Build lui permettant d'exécuter le workflow en arrière-plan.Utiliser l'image personnalisée
Une fois la compilation terminée, vous pouvez afficher l'image BYOL personnalisée dans la console Google Cloud sous Compute Engine > Images.
Pour faciliter la distinction entre plusieurs versions d'une même image, le processus de compilation intègre un horodatage dans le nom de l'image, par exemple
windows-server-2019-dc-v1613488342
. Il associe également l'image à une famille d'images personnalisée, telle quewindows-server-2019
.Pour créer une instance de VM qui utilise l'image BYOL personnalisée, vous devez provisionner l'instance de VM sur un nœud à locataire unique.
Dépannage
Si vous pensez que le processus de compilation a échoué ou qu'il ne progresse pas, aidez-vous des approches suivantes pour diagnostiquer la situation :
Étapes suivantes
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/12/22 (UTC).
-