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
Instale a Google Cloud CLI. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initInstale a Google Cloud CLI. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initPreparar 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 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
containerde o clientecrictl. - 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. - 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.
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. 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:
- 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 à estação de trabalho, consulte os registros da plataforma.
- SSH na VM: é possível usar SSH na VM da estação de trabalho para depurar ainda mais o script, se necessário.
- Verificações de prontidão: os scripts de inicialização são mais eficazes e não impedem que a 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, considere implementar verificações de prontidão.
A seguir
- Saiba mais sobre o registro em log da plataforma.
- Personalize seu ambiente de desenvolvimento.
- Solucione problemas da estação de trabalho.