
Prólogo
Este artículo es el resultado de una búsqueda de una semana de información muy fragmentada sobre cómo configurar la implementación del servicio web en Go. No en Heroku, ni en Docker, ni en Digital Ocean, sino solo en VDS antiguo con CentOS 7x64. Por alguna razón, la red no tiene esta información, y la mayoría de los tutoriales comienzan con cómo configurar la compilación y terminan con el lanzamiento de las pruebas.
Te advertiré de inmediato que por primera vez configuré el proceso de CI / CD, así que este es un artículo para principiantes y principiantes.
Seguramente se pueden corregir muchas cosas aquí, por lo que con mucho gusto aceptaré cualquier comentario en los comentarios e intentaré actualizar los cambios lo antes posible. También es posible que dicho artículo ya exista, y solo uso terriblemente el motor de búsqueda. Luego, por favor, dale un enlace y, en este caso, eliminaré el artículo e iré a esparcir cenizas sobre mi cabeza.
Datos de origen
- Servidor VDS
- OS: CentOS 7x64
- Ir al proyecto con la siguiente estructura:
src/ public/ index.html main.go
Configuración del servidor: crear un servicio
Primero, cree un servicio para nuestra aplicación. En CentOS 7, esto es bastante simple. Necesita escribir una secuencia de comandos en un archivo llamado serviceName.service:
[Unit]
El script en sí debe colocarse en la carpeta etc / systemd / system /
Configuración SSH
En el servidor, ejecute el comando:
ssh-keygen -f /etc/ssh/hmp.key
Previa solicitud
Ingrese la frase de contraseña (vacía para ninguna frase de contraseña)
no ingrese una contraseña, solo presione Enter.
Se generan dos archivos en la carpeta / etc / ssh /:
- hmp.key - clave privada
- hmp.key.pub: clave pública
Necesitamos una clave privada. Ver su contenido con el comando:
cat /etc/ssh/hmp.key
Se verá más o menos así:
-----BEGIN RSA PRIVATE KEY----- { } -----END RSA PRIVATE KEY-----
Todo copia completamente a tu portapapeles
ATENCION! - no solo la llave en sí, sino también
----- COMIENCE LA LLAVE PRIVADA RSA ----- y ----- FINALICE LA CLAVE PRIVADA RSA -----
Configuración de Gitlab
Primero, complete los datos importantes para el almacén (nombre de usuario, contraseña, etc.).
Incluso si su repositorio es público, permanecerán cerrados.
En Gitlab en el repositorio, vaya a Configuración -> CI / CD -> Variables. Creamos las siguientes variables allí:
- SSH_PRIVATE_KEY: pegue el valor copiado en el párrafo anterior aquí
- USER_PASS: contraseña de usuario desde la cual se iniciará la aplicación
- USUARIO: nombre de usuario desde el que se iniciará la aplicación
- HOST - la dirección de su VDS
- TARGET_DIR_ON_HOST: la carpeta de destino en la que se ubicará su servicio en mi ejemplo es / username / service /
- SERVICE_NAME: nombre del servicio
- GROUP_NAME es tu nombre de usuario de Gitlab
- REPOSITORY_NAME: el nombre de su repositorio
Agregue el archivo .gitlab-ci.yml al repositorio con los siguientes contenidos:
image: golang:latest before_script:
Después de la optimización, introducimos este script en el repositorio y tenemos un ensamblado e implementación listos. Eso es todo!
Espero que el artículo haya sido útil. ¡Para cualquier pregunta y comentario, estaré encantado de responder en los comentarios!