Ejecuta secuencias de comandos de inicio personalizadas

Cloud Workstations te permite ejecutar secuencias de comandos de inicio personalizadas en la VM de la estación de trabajo host antes de que se inicie el contenedor de la estación de trabajo. Esto es útil para realizar la configuración a nivel de la VM o instalar software adicional que debe ejecutarse fuera del contenedor principal de la estación de trabajo.

Antes de comenzar

Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.

Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:

gcloud init

Si usas un proveedor de identidad externo (IdP), primero debes acceder a la CLI de gcloud con tu identidad federada.

Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:

gcloud init

Si usas un proveedor de identidad externo (IdP), primero debes acceder a la CLI de gcloud con tu identidad federada.

Prepara tu secuencia de comandos de inicio

Crea la secuencia de comandos de inicio que deseas ejecutar en la VM de la estación de trabajo host. Cuando escribas tu secuencia de comandos, sigue estos lineamientos:

  1. Cloud Workstations ejecuta el contenedor de la estación de trabajo que especificaste, así como varios contenedores del sistema en la VM de la estación de trabajo host para garantizar que la estación de trabajo funcione correctamente. Todos los contenedores se ejecutan con el entorno de ejecución containerd y el cliente crictl.
  2. Ejecuta los contenedores adicionales que inicie tu secuencia de comandos de inicio con containerd. Docker está inhabilitado en la VM host para evitar interferencias con el daemon de Docker que se ejecuta dentro del contenedor de tu estación de trabajo.
  3. Los contenedores a nivel del host que se inician con la secuencia de comandos de inicio no pueden interactuar con el contenedor principal de la estación de trabajo. Estas interacciones directas no son compatibles porque omiten las verificaciones de Identity and Access Management (IAM).

Almacena tu secuencia de comandos de inicio en Cloud Storage

Sube tu secuencia de comandos a un bucket de Cloud Storage y asegúrate de que la cuenta de servicio asociada a tu estación de trabajo pueda acceder a ella.

  1. Sube tu secuencia de comandos a un bucket:

    gcloud storage cp LOCAL_SCRIPT_PATH gs://BUCKET_NAME/SCRIPT_NAME
    

    Reemplaza lo siguiente:

    • LOCAL_SCRIPT_PATH: Es la ruta de acceso local a tu archivo de secuencia de comandos de inicio.
    • BUCKET_NAME: Es el nombre de tu bucket de Cloud Storage.
    • SCRIPT_NAME: Es el nombre que deseas darle al archivo de secuencia de comandos en el bucket.
  2. Asegúrate de que la cuenta de servicio que usa la configuración de tu estación de trabajo tenga permisos para acceder al bucket y al archivo de secuencia de comandos. De forma alternativa, la secuencia de comandos puede ser de acceso público.

Crea una configuración de estación de trabajo

Para usar una secuencia de comandos de inicio personalizada, crea una configuración de estación de trabajo y establece el campo startupScriptUri en un mensaje host.gceInstance en el URI de Cloud Storage de tu secuencia de comandos.

Crea la configuración de la estación de trabajo con la API de REST:

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

Reemplaza lo siguiente:

  • SERVICE_ACCOUNT: Es la dirección de correo electrónico de la cuenta de servicio asociada con la configuración de la estación de trabajo.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la región en la que se encuentra tu clúster de estaciones de trabajo.
  • CLUSTER_ID: Es el ID de tu clúster de estaciones de trabajo.
  • CONFIG_ID: Es el ID que deseas asignar a la nueva configuración de la estación de trabajo.

Verifica la ejecución de la secuencia de comandos

Para verificar que tu secuencia de comandos se ejecutó correctamente, usa uno de los siguientes métodos:

  • Registros de salida del puerto en serie 3: Los registros de salida que genera tu secuencia de comandos se envían automáticamente a la salida del puerto en serie 3. Para encontrar el nombre de la VM asignada a tu estación de trabajo, consulta los registros de la plataforma.
  • Conéctate a tu VM a través de SSH: Puedes conectarte a tu VM de estación de trabajo a través de SSH para depurar aún más tu secuencia de comandos si es necesario.
  • Verificaciones de preparación: Las secuencias de comandos de inicio se incluyen en la categoría de "mejor esfuerzo" y no impiden que se inicie la estación de trabajo. Si la secuencia de comandos tarda mucho en ejecutarse o falla, es posible que la estación de trabajo aún se marque como lista. Para asegurarte de que la estación de trabajo no se marque como lista hasta que se complete tu secuencia de comandos, considera implementar verificaciones de preparación.

¿Qué sigue?