Esegui script di avvio personalizzati sulla VM host

Cloud Workstations ti consente di eseguire script di avvio personalizzati sulla VM della workstation host prima dell'avvio del container della workstation. Questo è utile per eseguire la configurazione a livello di VM o per installare software aggiuntivo che deve essere eseguito all'esterno del container della workstation.

L'esecuzione di script di avvio personalizzati sulla VM host è una funzionalità avanzata. Anziché utilizzare script di avvio, ti consigliamo di personalizzare l'immagine container.

Se scegli di utilizzare gli script di avvio, assicurati che lo script rimanga compatibile con le modifiche alle immagini di Container-Optimized OS (COS), perché la VM host riceve aggiornamenti regolari del sistema operativo basati su COS.

Prima di iniziare

Installa Google Cloud CLI, quindi accedi alla CLI gcloud con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:

gcloud init

Prepara lo script di avvio

Crea lo script di avvio che vuoi eseguire sulla VM della workstation host. Quando scrivi il copione, rispetta le seguenti linee guida:

  1. Cloud Workstations esegue il container della workstation specificato, nonché diversi container di sistema sulla VM della workstation host per garantire il corretto funzionamento della workstation. Tutti i container vengono eseguiti utilizzando il runtime containerd e il client crictl.
  2. Esegui tutti i container aggiuntivi avviati dallo script di avvio utilizzando containerd. Docker è disabilitato sulla VM host per evitare interferenze con il daemon Docker in esecuzione all'interno del container della workstation.
  3. I container a livello di host avviati dallo script di avvio non possono interagire con il container della workstation principale. Queste interazioni dirette non sono supportate perché ignorano i controlli di Identity and Access Management (IAM).

Archivia lo script di avvio in Cloud Storage

Carica lo script in un bucket Cloud Storage e assicurati che sia accessibile dalaccount di serviziot associato alla tua workstation.

  1. Carica lo script in un bucket:

    gcloud storage cp LOCAL_SCRIPT_PATH gs://BUCKET_NAME/SCRIPT_NAME
    

    Sostituisci quanto segue:

    • LOCAL_SCRIPT_PATH: il percorso locale del file dello script di avvio.
    • BUCKET_NAME: il nome del bucket Cloud Storage.
    • SCRIPT_NAME: il nome che vuoi assegnare al file dello script nel bucket.
  2. Assicurati che il account di servizio utilizzato dalla configurazione della workstation disponga delle autorizzazioni per accedere al bucket e al file di script. In alternativa, il copione può essere accessibile pubblicamente.

Creare una configurazione della workstation

Per utilizzare uno script di avvio personalizzato, crea una configurazione della workstation e specifica l'URI Cloud Storage dello script.

Console

Per configurare uno script di avvio personalizzato quando crei una configurazione di workstation:

  1. Nella console Google Cloud , vai alla pagina Configurazioni workstation.

    Vai alle configurazioni di workstation

  2. Fai clic su add Crea.

  3. Nella pagina Informazioni di base, inserisci un nome per la configurazione, seleziona un cluster di workstation e fai clic su Continua.

  4. Nella pagina Impostazioni macchina, configura le impostazioni della macchina e fai clic su Continua.

  5. Nella pagina Impostazioni ambiente, espandi la sezione Opzioni container avanzate.

  6. Nel campo Script di avvio personalizzato, inserisci il percorso di Cloud Storage dello script di avvio (ad esempio, gs://BUCKET_NAME/SCRIPT_NAME).

  7. Completa i passaggi rimanenti e fai clic su Crea.

REST

Per configurare uno script di avvio personalizzato utilizzando l'API REST, crea la configurazione della workstation e imposta il campo startupScriptUri in un messaggio host.gceInstance sull'URI Cloud Storage dello script:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
       "host": {
         "gceInstance": {
           "poolSize": 1,
           "startupScriptUri": "gs://BUCKET_NAME/SCRIPT_NAME",
           "serviceAccount": "SERVICE_ACCOUNT"
         }
       }
     }' \
     https://workstations.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/workstationClusters/CLUSTER_ID/workstationConfigs?workstation_config_id=CONFIG_ID

Sostituisci quanto segue:

  • SERVICE_ACCOUNT: l'indirizzo email del account di servizio associato alla configurazione della workstation.
  • PROJECT_ID: il tuo ID progetto Google Cloud .
  • LOCATION: la regione in cui si trova il cluster di workstation.
  • CLUSTER_ID: l'ID del cluster di workstation.
  • CONFIG_ID: l'ID che vuoi assegnare alla nuova configurazione della workstation.

Verifica l'esecuzione dello script

Per verificare che lo script sia stato eseguito correttamente, utilizza uno dei seguenti metodi:

  • Log di output della porta seriale 3: i log di output generati dallo script vengono inviati automaticamente all'output della porta seriale 3. Per trovare il nome della VM assegnata alla tua workstation, consulta i log della piattaforma.
  • Accedi tramite SSH alla VM: puoi accedere tramite SSH alla VM della workstation per eseguire il debug dello script, se necessario.
  • Controlli di idoneità: gli script di avvio vengono eseguiti secondo il principio del "best effort" e non bloccano l'avvio della workstation. Se l'esecuzione dello script richiede molto tempo o non va a buon fine, la workstation potrebbe comunque essere contrassegnata come pronta. Per assicurarti che la workstation non venga contrassegnata come pronta fino al completamento dello script, valuta la possibilità di implementare i controlli di idoneità.

Passaggi successivi