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
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:
- 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
containerde o clientecrictl. - 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. - 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.
Faça upload do script para um bucket:
gcloud storage cp LOCAL_SCRIPT_PATH gs://BUCKET_NAME/SCRIPT_NAMESubstitua:
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.
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:
No console Google Cloud , acesse a página Configurações da estação de trabalho.
Clique em Adicionar Criar.
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.
Na página Configurações da máquina, configure as opções e clique em Continuar.
Na página Configurações de ambiente, expanda a seção Opções avançadas de contêiner.
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).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
- Saiba mais sobre o registro de plataforma.
- Personalize seu ambiente de desenvolvimento.
- Resolver problemas da estação de trabalho.