Executar scripts de inicialização personalizados

Com o Cloud Workstations, é possível executar scripts de inicialização personalizados na VM da estação de trabalho host antes de iniciar o contêiner da estação de trabalho. Isso é útil para realizar configurações no nível da VM ou instalar software adicional que precisa ser executado fora do contêiner principal da estação de trabalho.

Antes de começar

Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de 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 CLI do Google Cloud. 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 CLI gcloud com sua identidade federada.

Instale a CLI do Google Cloud. 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 CLI gcloud 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 especificada e vários contêineres do sistema na VM da estação de trabalho 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 outros contêineres iniciados pelo script de inicialização usando containerd. O Docker é desativado na VM host para evitar interferência 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 está acessível pela conta de serviço associada à sua 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. Ou 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 de estação de trabalho e especifique o URI do Cloud Storage do seu script.

Console

Para configurar um script de inicialização personalizado ao criar uma configuração de estação de trabalho:

  1. No console Google Cloud , acesse a página Configurações da estação de trabalho.

    Acessar as configurações da estação de trabalho

  2. Clique em Adicionar Criar.

  3. Na página Informações básicas, insira um nome para a configuração, selecione um cluster de estação de trabalho e clique em Continuar.

  4. Na página Configurações da máquina, configure as opções e clique em Continuar.

  5. Na página Configurações de ambiente, expanda a seção Opções avançadas de contêiner.

  6. No campo Script de inicialização personalizado, insira o caminho do Cloud Storage para o script de inicialização (por exemplo, gs://BUCKET_NAME/SCRIPT_NAME).

  7. Conclua as etapas restantes e clique em Criar.

REST

Para configurar um script de inicialização personalizado usando a API REST, crie a configuração da estação de trabalho e defina o campo startupScriptUri em uma mensagem host.gceInstance como o URI do Cloud Storage do seu 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

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 projeto Google Cloud .
  • LOCATION: a região em que o cluster de 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 de estação de trabalho.

Verificar a execução do script

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

  • Registros de saída da porta serial 3: os registros de saída gerados pelo script são enviados automaticamente para a saída da porta serial 3. Para encontrar o nome da VM atribuída à sua estação de trabalho, consulte os registros da plataforma.
  • Conecte-se à VM por SSH: se necessário, conecte-se à VM da estação de trabalho por SSH para depurar ainda mais o script.
  • Verificações de prontidão: os scripts de inicialização são mais eficazes e não impedem que sua estação de trabalho seja iniciada. Se o script demorar muito para ser executado ou falhar, a estação de trabalho ainda poderá ser marcada como pronta. Para garantir que a estação de trabalho não seja marcada como pronta até que o script seja concluído, implemente verificações de prontidão.

A seguir