Sou realmente novo no mundo do Google Cloud e não poderia estar mais confuso. Aproveitei o nível sempre gratuito para obter uma instância de VM do Google Cloud Engine e queria usá-lo para fazer alguns testes de algumas coisas que estou desenvolvendo.
Já gerenciei servidores Linux antes com instâncias VPS, mas neste caso específico estou muito confuso sobre como implantar automaticamente qualquer um dos meus aplicativos nessa VM do GCE.
Meus aplicativos estão hospedados no Github, então estou tentando usar Github Actions, infelizmente a maioria das opções disponíveis exige que eu crie imagens do Docker, envie-as para o Container Registry do Google e depois implante-as ( como esta oficial ).
Infelizmente, a documentação está me dizendo que só posso executar uma única imagem por instância de VM , o que é justo, pois acho que é uma limitação do docker.
Aqui está o problema, não tenho conhecimento suficiente para configurar uma composição do docker ou coordenar o envio de imagens para o registro de contêiner do Google Cloud. Eu só não tenho idéia de como começar a aprender isso.
Não há absolutamente nenhuma maneira de executar um servidor web mais tradicional (API de hospedagem Nginx + Front-end) usando apenas o SSH para fazer login na instância da VM e extrair alterações do Github?
Eu tentei usar o ssh
comando para fazer login em uma das contas no servidor, mas acho que a porta não está aberta para me permitir fazer isso.
O gcloud
comando não parece permitir que eu forneça uma chave JSON para as contas de serviço fazerem login, então estou completamente perdido sobre como eu poderia fazer isso.
Alguma dica de como eu poderia contornar esses problemas?
Não posso ajudá-lo em relação à sua pergunta sobre CI/CD. No entanto, você pode configurar o login do SO para acessar sua VM com sua conta de serviço:
O arquivo [FILE].json será baixado no diretório do caminho onde você executou o comando.
gcloud auth activate-service-account --key-file=[FILE].json
Adicionando chaves SSH a uma conta de usuário
Reúna o uniqueId da conta de serviço
Agora você pode ssh em qualquer instância do projeto usando uma conta de serviço:
Observe que prefixamos o uniqueId com
sa_
Mais informações: Login do SO