
Prefácio
Este artigo é o resultado de uma pesquisa de uma semana por informações muito fragmentadas sobre como configurar a implantação do serviço web no Go. Não no Heroku, nem no Docker, nem no Digital Ocean, mas apenas no VDS antiquado com o CentOS 7x64. Por algum motivo, a rede não possui essas informações e a maioria dos tutoriais começa com como configurar a compilação e termina com o início dos testes.
Devo avisar que estava configurando o processo de CI / CD pela primeira vez, portanto, este é um artigo de iniciante a iniciante.
Certamente, muita coisa pode ser corrigida aqui, então aceitarei qualquer comentário com prazer e tentarei atualizar as alterações o mais rápido possível. Também é possível que esse artigo já exista, e eu apenas uso terrivelmente o mecanismo de pesquisa. Em seguida, forneça um link para ele e, neste caso, excluirei o artigo e vou espalhar cinzas na minha cabeça.
Dados de origem
- Servidor VDS
- SO: CentOS 7x64
- Vá para o projeto com a seguinte estrutura:
src/ public/ index.html main.go
Configuração do servidor: criar um serviço
Primeiro, crie um serviço para nosso aplicativo. No CentOS 7, isso é bem simples. Você precisa escrever esse script em um arquivo chamado serviceName.service:
[Unit]
O script em si deve ser colocado na pasta etc / systemd / system /
Configuração SSH
No servidor, execute o comando:
ssh-keygen -f /etc/ssh/hmp.key
A pedido
Digite a senha (vazia para nenhuma senha)
não digite uma senha, basta pressionar Enter.
Dois arquivos são gerados na pasta / etc / ssh /:
- hmp.key - chave privada
- hmp.key.pub - chave pública
Precisamos de uma chave privada. Visualize seu conteúdo usando o comando:
cat /etc/ssh/hmp.key
Será algo parecido com isto:
-----BEGIN RSA PRIVATE KEY----- { } -----END RSA PRIVATE KEY-----
Todos copiam completamente para a área de transferência
ATENÇÃO! - não apenas a chave em si, mas também
----- COMEÇA A CHAVE PRIVADA RSA ----- e ----- TERMINA A CHAVE PRIVADA RSA -----
Configuração do Gitlab
Primeiro, preencha os dados importantes para o depósito (nome de usuário, senha etc.).
Mesmo se seu repositório for público, eles permanecerão fechados.
No Gitlab, no repositório, vá para Configurações -> CI / CD -> Variáveis. Criamos as seguintes variáveis lá:
- SSH_PRIVATE_KEY - cole aqui o valor copiado no parágrafo anterior
- USER_PASS - senha de usuário a partir da qual o aplicativo será iniciado
- USER - nome de usuário a partir do qual o aplicativo será iniciado
- HOST - o endereço do seu VDS
- TARGET_DIR_ON_HOST - a pasta de destino na qual seu serviço estará localizado no meu exemplo é / nome de usuário / serviço /
- SERVICE_NAME - nome do serviço
- GROUP_NAME é seu nome de usuário do Gitlab
- REPOSITORY_NAME - o nome do seu repositório
Inclua o arquivo .gitlab-ci.yml no repositório com o seguinte conteúdo:
image: golang:latest before_script:
Após o ajuste, inserimos esse script no repositório e temos uma montagem e implantação prontas. Isso é tudo!
Espero que o artigo tenha sido útil. Para quaisquer perguntas e comentários, terei o maior prazer em responder nos comentários!