Executar scripts de inicialização personalizados na VM host

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 da estação de trabalho.

A execução de scripts de inicialização personalizados na VM do host é um recurso avançado. Em vez de usar scripts de inicialização, recomendamos que você personalize a imagem do contêiner.

Se você optar por usar scripts de inicialização, verifique se o script permanece compatível com as mudanças na imagem do Container-Optimized OS (COS), porque a VM do host recebe atualizações regulares do sistema operacional com base no COS.

Antes de começar

Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloudagora, 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 CLI gcloud 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 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 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 o 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 o 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 acessível 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 especifique o URI do Cloud Storage do script.

Console

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

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

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

  2. Clique em add Criar.

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

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

  5. Na página Configurações do 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 para o URI do Cloud Storage do 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 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