Com o Cloud Workstations, é possível executar scripts de inicialização personalizados na VM da estação de trabalho host antes do início do 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 da estação de trabalho.
A execução de scripts de inicialização personalizados na VM 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 alterações de imagem do Container-Optimized OS (COS), porque a VM do host recebe atualizações do sistema operacional regulares com base no COS.
Antes de começar
Instale a Google Cloud CLI e
faça login na CLI da gcloud com sua identidade federada.
Depois de fazer login,
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 seu script, siga estas diretrizes:
- O Cloud Workstations executa o contêiner de estação de trabalho especificado, além de
vários contêineres do sistema na VM da estação de trabalho host para garantir que ela
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ê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. Outra opção é tornar o script acessível 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 add 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: conecte-se à VM da estação de trabalho por SSH para depurar ainda mais o script, se necessário.
- Verificações de prontidão: os scripts de inicialização são de melhor esforço 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, considere implementar 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.