Immagine della creazione della macchina virtuale (VM)

Questa pagina ti aiuta a creare un'immagine della macchina pubblica da eseguire sul tuo prodotto su Compute Engine.

Un'immagine contiene un bootloader, un sistema operativo e un file system radice necessari per avviare un'istanza. Puoi configurare l'immagine con un set di app e servizi per il tuo prodotto. L'immagine viene utilizzata dai clienti per avviare un'istanza di macchina virtuale (VM) nel cloud.

Ti consigliamo di iniziare con la creazione di un'immagine nel progetto di sviluppo, quindi di spostarla nel progetto pubblico dopo che il Google Partner Engineer ha verificato l'immagine.

Prima di iniziare

  1. Scarica Google Cloud SDK.

Crea la VM di prodotto di base

Per creare un'immagine della macchina personalizzata per Google Cloud Marketplace, devi completare questi passaggi (descritti nelle sezioni seguenti):

Crea un'immagine VM con licenza

Producer Portal

  1. Utilizza gcloud per impostare i valori predefiniti per l'interfaccia a riga di comando di Google Cloud:

    gcloud config set project <project_id>
    gcloud config set compute/zone <zone>
  2. Crea un'istanza principale che verrà utilizzata per installare il software e che in seguito verrà convertita in un'immagine da utilizzare su Google 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 
  3. Installa e personalizza il software. Includi eventuali script di avvio richiesti, ad esempio quelli per la creazione di credenziali di autorizzazione.

    Per creare credenziali di autorizzazione utilizzando password casuali protette, segui la procedura descritta in Creare credenziali di autorizzazione nella sezione seguente.

    Dopo aver creato e personalizzato l'istanza principale, prepara il disco necessario per creare un'immagine VM.

  4. Pulisci il disco. La creazione di un'immagine VM direttamente dalla VM trasferisce anche le directory utente e le chiavi SSH nelle VM dei tuoi clienti. Pertanto, durante la creazione dell'immagine VM, devi pulire il disco di input.

    Per pulire il disco:

    1. Nel menu Istanze VM di Compute Engine, fai clic sul nome dell'istanza che vuoi pulire, quindi su Modifica.

    2. Scorri verso il basso e deseleziona la casella di controllo Elimina il disco di avvio quando viene eliminata e fai clic su Salva. Utilizza il disco per creare l'immagine.

    3. Elimina la VM mantenendo il disco. Ti verrà chiesto di confermare l'eliminazione. Non selezionare Elimina anche il disco di avvio.

    4. Il passaggio successivo consiste nel creare una nuova istanza VM. Espandi le opzioni Gestione, disco, rete, Chiavi SSH.

    5. In disco, collega il disco della tua istanza precedente come disco dati aggiuntivo. Assicurati che l'opzione Mantieni disco sia selezionata per Quando si elimina un'istanza.

      Ora puoi connetterti all'istanza mediante SSH e rimuovere tutte le home directory o altri file temporanei creati durante il processo di installazione del software. Devi montare il disco dati prima di potervi accedere. Per ulteriori informazioni sul montaggio dei dischi, consulta la sezione Aggiungere o ridimensionare i dischi permanenti.

    6. Al termine, arresta ed elimina l'istanza mantenendo il disco dati aggiornato. Ora puoi creare un'immagine VM completando i seguenti passaggi.

  5. Per ottenere il nome della licenza per il tuo prodotto VM in Producer Portal, segui questa procedura:

    1. Apri Producer Portal in Google Cloud Console:

      https://console.cloud.google.com/producer-portal?project=YOUR_PROJECT_ID
      

      Sostituisci YOUR_PROJECT_ID con l'ID del tuo progetto di sviluppo o pubblico. Ti consigliamo di iniziare con la creazione di un'immagine nel progetto di sviluppo, quindi di spostarla nel progetto pubblico dopo che il tuo Google Partner Engineer ha verificato l'immagine.

    2. Fai clic sul nome del prodotto.

    3. Vai alla sezione Deployment Package. In Licenza VM, prendi nota del nome. Potrai utilizzare questo nome di licenza nel passaggio successivo, quando crei l'immagine.

  6. Crea un'immagine con licenza eseguendo il seguente comando gcloud:

    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 projects/PUBLIC_PROJECT_NAME/global/licenses/LICENSE_NAME \
    --description ADD_DESCRIPTION
    

    Sostituisci quanto segue:

    • CREATE_IMAGE_NAME: il nome dell'immagine, nel formato who-vmOS-image-date. Devi utilizzare un nome nuovo e univoco ogni volta che aggiorna l'immagine del prodotto.
    • PUBLIC_PROJECT_NAME: l'ID progetto del progetto pubblico per Google Cloud Marketplace.
    • LICENSE_NAME: il nome della licenza per il prodotto VM che hai annotato nel passaggio precedente.
    • DEV_PROJECT_NAME: l'ID progetto per il progetto che hai creato per lo sviluppo e il test per Google Cloud Marketplace.
    • 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 creata.

Portale partner

  1. Utilizza gcloud per impostare i valori predefiniti per l'interfaccia a riga di comando di Google Cloud:

    gcloud config set project <project_id>
    gcloud config set compute/zone <zone>
  2. Crea un'istanza principale che verrà utilizzata per installare il software e che in seguito verrà convertita in un'immagine da utilizzare su Google 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 
  3. Installa e personalizza il software. Includi eventuali script di avvio richiesti, ad esempio quelli per la creazione di credenziali di autorizzazione.

    Per creare credenziali di autorizzazione utilizzando password casuali protette, segui la procedura descritta in Creare credenziali di autorizzazione nella sezione seguente.

    Dopo aver creato e personalizzato l'istanza principale, prepara il disco necessario per creare un'immagine VM.

  4. Pulisci il disco. La creazione di un'immagine VM direttamente dalla VM trasferisce anche le directory utente e le chiavi SSH nelle VM dei tuoi clienti. Pertanto, durante la creazione dell'immagine VM, devi pulire il disco di input.

    Per pulire il disco:

    1. Nel menu Istanze VM di Compute Engine, fai clic sul nome dell'istanza che vuoi pulire, quindi su Modifica.

    2. Scorri verso il basso e deseleziona la casella di controllo Elimina il disco di avvio quando viene eliminata e fai clic su Salva. Utilizza il disco per creare l'immagine.

    3. Elimina la VM mantenendo il disco. Ti verrà chiesto di confermare l'eliminazione. Non selezionare Elimina anche il disco di avvio.

    4. Il passaggio successivo consiste nel creare una nuova istanza VM. Espandi le opzioni Gestione, disco, rete e Chiavi SSH.

    5. In disco, collega il disco della tua istanza precedente come disco dati aggiuntivo. Assicurati che l'opzione Mantieni disco sia selezionata per Quando si elimina un'istanza.

      Ora puoi connetterti all'istanza mediante SSH e rimuovere tutte le home directory o altri file temporanei creati durante il processo di installazione del software. Devi montare il disco dati prima di potervi accedere. Per ulteriori informazioni sul montaggio dei dischi, consulta la sezione Aggiungere o ridimensionare i dischi permanenti.

    6. Al termine, arresta ed elimina l'istanza mantenendo il disco dati aggiornato. Ora puoi creare un'immagine VM completando i seguenti passaggi.

  5. Per ottenere il nome della licenza per il tuo prodotto nel Portale partner, segui questi passaggi:

    1. Fai clic sull'ID della soluzione per il tuo prodotto.

    2. Fai clic per modificare i metadati della soluzione.

    3. Nei metadati della soluzione, nella sezione Licenze e prezzo, in Nome licenza, indica il nome della licenza. Potrai utilizzare questo nome di licenza in un secondo momento, quando utilizzerai gcloud per creare l'immagine.

  6. Crea un'immagine con licenza eseguendo il comando gcloud seguente:

    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 projects/PUBLIC_PROJECT_NAME/global/licenses/LICENSE_NAME \
    --description ADD_DESCRIPTION
    

Crea credenziali di autorizzazione

Se il prodotto è un semplice deployment di una singola istanza VM con regole di firewall di base, puoi includere automaticamente una password casuale casuale quando configuri direttamente il pacchetto di deployment.

Se prevedi di creare il tuo pacchetto di deployment utilizzando lo strumento open source mpdev, che consigliamo per la maggior parte dei casi d'uso, puoi usare mpdev per includere automaticamente più password casuali casuali.

Per i passaggi per creare le credenziali di autorizzazione, consulta la sezione Creazione del pacchetto di deployment.

Al termine del deployment del prodotto, per ottenere i valori di qualsiasi password creata, utilizza il comando seguente all'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, SSH nell'istanza e verifica che siano allegate le 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 -V

Verifica che siano installati i seguenti pacchetti:

gcloud --version
gsutil --version
ssh -V
ps aux | grep sshd
curl -V
ps aux | grep dhcp

Verifica che non vi siano altre directory utente installate nell'istanza, ad eccezione della tua, e che non siano presenti altre credenziali o directory utente diverse dalla tua.