Per creare una VM Windows su Google Cloud, devi utilizzare un'immagine VM con Windows o Windows Server preinstallato. Google Cloud fornisce immagini pubbliche per le versioni di Windows Server di uso comune, ma queste immagini sono adatte solo per le licenze on demand. Per utilizzare la tua licenza Windows (BYOL), devi importare un'immagine esistente o creare un'immagine personalizzata.
Questa guida descrive come creare un'immagine personalizzata utilizzando gli stessi strumenti e le stesse procedure utilizzati da Google Cloud per creare le immagini pubbliche.
Per completare questa guida, devi disporre di:
- Un file ISO contenente i media di installazione di Windows o Windows Server.
- Facoltativamente, uno o più pacchetti di aggiornamento di Windows (in formato
.msu
) da applicare all'immagine.
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
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.
- Creazione di un nuovo disco.
- Estrazione dell'immagine di Windows (
install.wim
dal supporto di installazione) sul disco. - Aggiunta dei driver necessari, configurazione della configurazione di Windows in modo che venga eseguita senza supervisione e creazione del disco di avvio.
- Avvio dal nuovo disco per eseguire la configurazione di Windows.
- Installazione di software aggiuntivo, incluso l'agente del sistema operativo guest.
- Creazione di un'immagine dal disco.
- 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.
- Sul computer locale, apri una finestra di Windows PowerShell.
Inizializza una variabile:
$PROJECT_ID = "
PROJECT_ID
"dove
PROJECT_ID
è l'ID del progetto Google Cloud che hai creato nella sezione precedente.Inizializza un'altra variabile in modo che contenga il numero del progetto:
$PROJECT_NUMBER = gcloud projects describe $PROJECT_ID --format=value`(projectNumber`)
- Apri una finestra del terminale sul computer locale.
Inizializza una variabile:
PROJECT_ID=
PROJECT_ID
dove
PROJECT_ID
è l'ID del progetto Google Cloud che hai creato nella sezione precedente.Inizializza un'altra variabile in modo che contenga il numero del progetto:
PROJECT_NUMBER=`gcloud projects describe $PROJECT_ID --format=value\(projectNumber\)`
Sul computer locale, scarica i pacchetti di installazione richiesti:
Crea un nuovo bucket Cloud Storage per archiviare i file di installazione:
gcloud storage buckets create gs://$PROJECT_ID-media --project=$PROJECT_ID
Concedi il ruolo Visualizzatore oggetti Storage a Cloud Build in modo che possa leggere i file di installazione:
gcloud storage buckets add-iam-policy-binding gs://$PROJECT_ID-media --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com --role=roles/storage.objectViewer
Carica il pacchetto di installazione di PowerShell:
gcloud storage cp
POWERSHELL_PACKAGE
gs://$PROJECT_ID-media/PowerShell.msidove
POWERSHELL_PACKAGE
è il percorso del pacchetto di installazione di PowerShell.Carica il pacchetto di installazione di .NET Framework:
gcloud storage cp
DOTNET_PACKAGE
gs://$PROJECT_ID-media/dotnet-sdk.exedove
DOTNET_PACKAGE
è il percorso del pacchetto di installazione di NET Framework.Carica il pacchetto di installazione di gcloud CLI:
gcloud storage cp
CLOUDSDK_PACKAGE
gs://$PROJECT_ID-media/GoogleCloudSDKInstaller.exedove
CLOUDSDK_PACKAGE
è il percorso del pacchetto di installazione della gcloud CLI.Carica il file ISO contenente i dati di installazione di Windows:
gcloud storage cp
ISO
gs://$PROJECT_ID-media/dove
ISO
è il nome del file ISO.Se vuoi, carica altri pacchetti di aggiornamento:
gcloud storage cp
UPDATE_DIR
/*.msu gs://$PROJECT_ID-media/updates/dove
UPDATE_DIR
è la directory contenente i pacchetti di aggiornamento.Sul computer locale, clona il repository Git contenente i
daisy
workflow per la creazione di immagini Windows:git clone https://github.com/GoogleCloudPlatform/compute-image-tools.git
Passa alla directory
windows
:cd compute-image-tools/daisy_workflows/image_build/windows/
Nella directory
windows
troverai una selezione di file con il suffisso.wf.json
. Questi file contengono le definizioni del flusso di lavoro di Daisy per le versioni di Windows più utilizzate:Versione di Windows File di workflow Windows Server Core 2022 (64 bit) windows-server-2022-dc-core-uefi-byol.wf.json
Windows Server 2019 (64 bit) windows-server-2019-dc-uefi-byol.wf.json
Windows Server Core 2019 (64 bit) windows-server-2019-dc-core-uefi-byol.wf.json
Windows Server 2016 (64 bit) windows-server-2016-dc-uefi-byol.wf.json
Windows Server Core 2016 (64 bit) windows-server-2016-dc-core-uefi-byol.wf.json
Windows 11 21H2 (64 bit) windows-11-21h2-ent-x64-uefi.wf.json
Windows 11 22H2 (64 bit) windows-11-22h2-ent-x64-uefi.wf.json
Windows 11 23H2 (64 bit) windows-11-23h2-ent-x64-uefi.wf.json
Windows 10 21H2 (64 bit) windows-10-21h2-ent-x64-uefi.wf.json
Windows 10 22H2 (64 bit) windows-10-22h2-ent-x64-uefi.wf.json
Apri il file di flusso di lavoro più simile alla versione di Windows che vuoi installare. Se necessario, modifica le impostazioni della versione di Windows (
edition
) e della codice licenza (product_key
) nei file di flusso di lavoro in modo che corrispondano ai tuoi supporti di installazione.Se hai dubbi sul nome della versione corretta, apri un prompt di PowerShell con privilegi elevati ed esegui i seguenti comandi per elencare tutte le versioni supportate dal tuo supporto di installazione:
$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-NullSostituisci
ISO
con il percorso locale dell'immagine ISO.Nella directory
windows
, crea un nuovo file denominatocloudbuild.yaml
e incolla il seguente codice: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
Sostituisci:
ISO
: il nome del file ISO su Cloud Storage.WORKFLOW
: il nome del file di flusso di lavoro corrispondente alla versione di Windows in uso.
Invia la compilazione a Cloud Build:
gcloud builds submit --project $PROJECT_ID --async
Il completamento della compilazione può richiedere fino a quattro ore. Puoi monitorare lo stato della compilazione nella console Google Cloud in Cloud Build > Cronologia.
- Verifica di aver caricato i pacchetti di installazione e il file ISO corretti.
- Verifica di aver selezionato un flusso di lavoro corrispondente alla versione Windows del file ISO.
- Esamina il log di compilazione in Cloud Build e controlla se sono presenti messaggi di errore.
- Se la compilazione sembra bloccata, controlla l'output della porta seriale dell'istanza VM creata dalla compilazione e cerca messaggi di errore.
- Scopri di più sullo strumento daisy.
- Scopri di più sui workflow a margherita per la creazione di immagini.
- Scopri come importare le licenze esistenti in Compute Engine.
- Scopri le best practice per lavorare con le famiglie di immagini.
Informazioni sulla processo di compilazione
Per installare Windows da zero, un approccio comune è avviare un computer da un DVD o un file ISO contenente i file di installazione di Windows. A differenza di alcuni ipervisori on-premise, Compute Engine non consente di avviare da un file ISO.
Per installare Windows da zero, devi quindi seguire un approccio diverso che prevede i seguenti passaggi:
Anziché eseguire questi passaggi manualmente, questa guida descrive come utilizzare Cloud Build, lo strumento
daisy
e i flussi di lavoro di riferimento che sono disponibili su GitHub per automatizzare il processo.daisy
è uno strumento a riga di comando open source che consente di eseguire i flussi di lavoro. Workflows vengono creati come file JSON e contengono una sequenza di passaggi. Ogni passaggio descrive un'operazione di Compute Engine, ad esempio la creazione di un disco o l'arresto di un'istanza VM. I flussi di lavoro Daisy sono quindi adatti per automatizzare i passaggi necessari per creare un'immagine Windows da zero.I flussi di lavoro in catena per la creazione di immagini Windows personalizzate creano due istanze VM temporanee. La prima istanza VM (con prefisso
bootstrap
) esegue i passaggi necessari per creare un disco di avvio. La seconda istanza VM (con prefissoinstall
) esegue la configurazione di Windows ed esegue tutti i passaggi rimanenti.Prepara il progetto per la creazione di immagini
Per impedire allo strumento daisy di interferire con le istanze VM o con l'infrastruttura esistenti, crea un progetto dedicato per la creazione delle immagini:
I passaggi successivi variano a seconda che tu utilizzi Windows o Linux sul computer locale:
Windows
Linux
Carica i file di installazione
Ora raccogli tutti i file di installazione necessari per l'immagine personalizzata e caricali in un bucket Cloud Storage. Se archivi i file in un bucket Cloud Storage, assicurati che siano accessibili a
daisy
e alle istanze VM temporanee chedaisy
utilizza per creare l'immagine.Ora puoi creare l'immagine personalizzata.
Crea l'immagine
L'esecuzione del flusso di lavoro
daisy
per creare un'immagine personalizzata richiede fino a quattro ore. Anziché eseguiredaisy
localmente, ora crei una configurazione di Cloud Build per consentire a Cloud Build di eseguire il flusso di lavoro in background.Utilizza l'immagine personalizzata
Al termine della build, puoi trovare l'immagine BYOL personalizzata nella console Google Cloud in Compute Engine > Immagini.
Per distinguere più versioni della stessa immagine, il processo di compilazione incorpora un timestamp nel nome dell'immagine, ad esempio
windows-server-2019-dc-v1613488342
. Inoltre, il processo associa l'immagine a una famiglia di immagini personalizzata, ad esempiowindows-server-2019
.Per creare un'istanza VM che utilizza l'immagine BYOL personalizzata, devi eseguire il provisioning dell'istanza VM su un nodo single-tenant.
Risoluzione dei problemi
Se sospetti che il processo di compilazione non sia riuscito o non stia procedendo, utilizza i seguenti approcci per diagnosticare la situazione:
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-12-22 UTC.
-