Executar scripts de inicialização personalizados

O Cloud Workstations permite executar scripts de inicialização personalizados na VM da estação de trabalho do host antes que o contêiner da estação de trabalho seja iniciado. Isso é útil para realizar a configuração no nível da VM ou instalar softwares adicionais que precisam ser executados fora do contêiner principal da estação de trabalho.

Antes de começar

Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.

Instale a Google Cloud CLI. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:

gcloud init

Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

Instale a Google Cloud CLI. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:

gcloud init

Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

Preparar o script de inicialização

Crie o script de inicialização que você quer executar na VM da estação de trabalho do host. Ao escrever o script, siga estas diretrizes:

  1. O Cloud Workstations executa o contêiner da estação de trabalho especificado, bem como vários contêineres do sistema na VM da estação de trabalho do host para garantir que a estação de trabalho funcione corretamente. Todos os contêineres são executados usando o ambiente de execução containerd e o cliente crictl.
  2. Execute todos os contêineres adicionais iniciados pelo script de inicialização usando containerd. O Docker está desativado na VM do host para evitar interferências com o daemon do Docker em execução no contêiner da estação de trabalho.
  3. Os contêineres no nível do host iniciados pelo script de inicialização não podem interagir com o contêiner principal da estação de trabalho. Essas interações diretas não são compatíveis porque ignoram as verificações do Identity and Access Management (IAM).

Armazenar o script de inicialização no Cloud Storage

Faça upload do script para um bucket do Cloud Storage e verifique se ele pode ser acessado pela conta de serviço associada à estação de trabalho.

  1. Faça upload do script para um bucket:

    gcloud storage cp LOCAL_SCRIPT_PATH gs://BUCKET_NAME/SCRIPT_NAME
    

    Substitua:

    • LOCAL_SCRIPT_PATH: o caminho local para o arquivo de script de inicialização.
    • BUCKET_NAME: o nome do bucket do Cloud Storage.
    • SCRIPT_NAME: o nome que você quer dar ao arquivo de script no bucket.
  2. Verifique se a conta de serviço usada pela configuração da estação de trabalho tem permissões para acessar o bucket e o arquivo de script. Como alternativa, o script pode ser acessado publicamente.

Criar uma configuração da estação de trabalho

Para usar um script de inicialização personalizado, crie uma configuração da estação de trabalho e defina o campo startupScriptUri em uma mensagem host.gceInstance para o URI do Cloud Storage do script.

Crie a configuração da estação de trabalho usando a API 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

Substitua:

  • SERVICE_ACCOUNT: o endereço de e-mail da conta de serviço associada à configuração da estação de trabalho.
  • PROJECT_ID: o ID do Google Cloud projeto.
  • LOCATION: a região em que o cluster da estação de trabalho está localizado.
  • CLUSTER_ID: o ID do cluster da estação de trabalho.
  • CONFIG_ID: o ID que você quer atribuir à nova configuração da estação de trabalho.

Verificar a execução do script

Para verificar se o script foi executado corretamente, use um dos seguintes métodos:

A seguir