Questa pagina ti aiuta a creare un'immagine della macchina pubblica per il tuo prodotto da eseguire su Compute Engine.
Un'immagine contiene un bootloader, un sistema operativo, e un file system di root necessari per avviare un'istanza. Puoi configurare l'immagine con un insieme di app e servizi per il tuo prodotto. I clienti utilizzano l'immagine per avviare un'istanza di macchina virtuale (VM) nel cloud.
Ti consigliamo di iniziare creando un'immagine nel progetto di sviluppo e poi di spostarla nel progetto pubblico dopo che il tuo Google Partner Engineer l'ha verificata.
Prima di iniziare
- Scarica il Google Cloud SDK.
Crea la VM del prodotto di base
Per creare un'immagine della macchina personalizzata per Cloud Marketplace, devi completare questi passaggi (descritti nelle sezioni seguenti):
-
Puoi scegliere un'immagine che utilizza processori Arm o una che utilizza processori x86. Puoi anche includere più immagini, destinate a diversi tipi di macchine, in un unico prodotto VM. Per ulteriori informazioni sulle piattaforme CPU e sui tipi di macchine che le supportano, consulta Piattaforme CPU.
Se intendi fornire assistenza ai tuoi clienti, installa gli script per recuperare le credenziali utente dell'app.
Crea un'immagine VM con licenza
Utilizza gcloud per impostare i valori predefiniti per Google Cloud CLI:
gcloud config set project <project_id> gcloud config set compute/zone <zone>
Crea un'istanza primaria utilizzata per installare il software e, in un secondo momento, convertita in un'immagine da utilizzare su Cloud Marketplace. Per ulteriori informazioni sulla creazione di un'istanza, consulta Creazione e avvio di un'istanza.
gcloud compute instances create ${INSTANCE} --scopes https://www.googleapis.com/auth/cloud-platform
Installa e personalizza il software. Includi tutti gli script di avvio necessari, ad esempio quelli per la creazione delle credenziali di autorizzazione.
Per creare le credenziali di autorizzazione utilizzando password casuali sicure, segui i passaggi descritti nella sezione seguente, Creazione delle credenziali di autorizzazione.
Dopo aver creato e personalizzato l'istanza primaria, prepara il disco necessario per creare un'immagine VM.
Libera spazio sul disco. La creazione di un'immagine VM direttamente dalla VM trasferisce anche le directory utente e le chiavi SSH nelle VM dei clienti, pertanto devi pulire il disco di input quando crei l'immagine VM.
Per pulire il disco:
Nel menu Istanze VM di Compute Engine, fai clic sul nome dell'istanza che vuoi liberare spazio, quindi fai clic su Modifica.
Scorri verso il basso, deseleziona la casella di controllo Elimina il disco di avvio quando viene eliminata l'istanza e fai clic su Salva. Utilizza il disco per creare l'immagine.
Elimina la VM mantenendo il disco. Ti verrà chiesto di confermare l'eliminazione. Non selezionare Elimina anche il disco di avvio.
Successivamente, devi creare una nuova istanza VM. Espandi le opzioni Gestione, disco, rete, chiavi SSH.
In disco, collega il disco dell'istanza precedente come un disco di dati aggiuntivo. Assicurati che l'opzione Conserva disco sia selezionata per Quando si elimina un'istanza.
Ora puoi connetterti all'istanza tramite SSH e rimuovere eventuali directory home o altri file temporanei creati durante il processo di installazione del software. Devi montare il disco di dati prima di potervi accedere. Per ulteriori informazioni sul montaggio dei dischi, consulta Aggiunta o ridimensionamento dei dischi permanenti.
Al termine, arresta ed elimina l'istanza mantenendo il disco di dati aggiornato. Ora puoi creare un'immagine VM completando i seguenti passaggi.
Recupera il nome della licenza per il tuo prodotto VM in Producer Portal seguendo questi passaggi:
Apri Producer Portal nella Google Cloud console:
https://console.cloud.google.com/producer-portal?project=YOUR_PROJECT_ID
Sostituisci YOUR_PROJECT_ID con l'ID del progetto di sviluppo o pubblico. Ti consigliamo di iniziare creando un'immagine nel progetto di sviluppo e poi di spostarla nel progetto pubblico dopo che il tuo Google Partner Engineer l'ha verificata.
Fai clic sul nome del prodotto.
Vai alla sezione Pacchetto di deployment. Prendi nota del nome in Licenza VM. Utilizzerai questo nome della licenza nel passaggio successivo, quando creerai l'immagine.
Crea un'immagine con licenza eseguendo il seguente
gcloudcomando:gcloud compute images create CREATE_IMAGE_NAME \ --project PUBLIC_PROJECT_NAME \ --source-disk projects/DEV_PROJECT_NAME/zones/SOURCE_DISK_ZONE/disks/SOURCE_DISK_NAME \ --licenses LICENSE_NAME \ --description ADD_DESCRIPTION
Sostituisci quanto segue:
CREATE_IMAGE_NAME: il nome dell'immagine e le architetture della CPU che supporta, nel formato
who-vmOS-image-architecture-date, sostituendoarchitectureconArmox86_64, a seconda dell'architettura della CPU supportata dall'immagine. Devi utilizzare un nome nuovo e univoco ogni volta che aggiorni l'immagine del tuo prodotto.PUBLIC_PROJECT_NAME: l'ID progetto del tuo progetto pubblico per Cloud Marketplace. Devi aver ricevuto il ruolo Compute Storage Admin (
roles/compute.storageAdmin) per questo progetto.LICENSE_NAME: il nome della licenza per il tuo prodotto VM che hai annotato nel passaggio precedente.
DEV_PROJECT_NAME: l'ID progetto del progetto che hai creato per lo sviluppo e il test per Cloud Marketplace. Devi avere il ruolo Compute Image User (
roles/compute.imageUser) per questo progetto.SOURCE_DISK_ZONE: la zona del disco di origine.
SOURCE_DISK_NAME: il nome del disco di origine.
ADD_DESCRIPTION: una descrizione testuale facoltativa per l' immagine che stai creando.
Rendi pubblica l'immagine
Per i prodotti non Terraform che non utilizzano immagini di proprietà di Marketplace, devi rendere disponibile pubblicamente l'immagine in modo che i clienti possano eseguirne il deployment sulle loro istanze Compute Engine. Per rendere pubblica l'immagine, utilizza la Google Cloud console o Google Cloud CLI:
Console
Nel progetto pubblico, in Compute Engine, vai alla pagina Immagini.
Seleziona l'immagine, come mostrato di seguito:

Se non vedi un riquadro informazioni in alto a destra, fai clic su Mostra riquadro informazioni.
Nel riquadro informazioni, nel campo Aggiungi membri, inserisci
allAuthenticatedUserse, dal menu Seleziona un ruolo, seleziona Compute Image User.
Fai clic su Aggiungi per rendere pubblica l'immagine.
Riga di comando
Utilizza il seguente gcloud comando in
Cloud Shell o sulla tua macchina
locale:
gcloud compute images add-iam-policy-binding IMAGE_NAME --member=allAuthenticatedUsers --role=roles/compute.imageUser
Crea le credenziali di autorizzazione
Se il tuo prodotto è un deployment semplice di una singola istanza VM con regole firewall di base, puoi includere automaticamente una password casuale sicura quando configuri direttamente il pacchetto di deployment.
Se prevedi di creare il pacchetto di deployment utilizzando lo
strumento open source mpdev,
che consigliamo per la maggior parte dei casi d'uso, puoi utilizzare mpdev per includere automaticamente
più password casuali sicure.
Per i passaggi per creare le credenziali di autorizzazione, consulta Creazione del pacchetto di deployment.
Dopo il deployment del prodotto, per ottenere i valori di tutte le password che hai creato, utilizza il seguente comando dall'interno dell'istanza VM:
curl -H "Metadata-Flavor: Google" \ http://metadata/computeMetadata/v1/instance/attributes/PASSWORD_NAME
Testa l'immagine VM
Crea un'istanza VM con l'immagine appena creata e verifica la funzionalità.
Inoltre, per verificare l'ID licenza, connettiti all'istanza tramite SSH e verifica che siano collegate licenze valide:
curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/licenses/?recursive=true
Verifica che sia installato Python 2.6 o versioni successive:
python -VVerifica che siano installati i seguenti pacchetti:
gcloud --version ssh -V ps aux | grep sshd curl -V ps aux | grep dhcp
Controlla che nell'istanza non siano installate altre directory utente oltre alla tua e che non siano presenti directory utente e credenziali rimanenti diverse dalle tue.