
Préface
Cet article est le résultat d'une recherche d'une semaine d'informations très fragmentées sur la façon de configurer le déploiement du service Web sur Go. Ni sur Heroku, ni sur Docker, ni sur Digital Ocean, mais uniquement sur des VDS à l'ancienne avec CentOS 7x64. Pour une raison quelconque, le réseau ne dispose pas de ces informations et la plupart des didacticiels commencent par la configuration de la génération et se terminent par le lancement des tests.
Je vous préviens immédiatement que pour la première fois j'ai configuré le processus CI / CD, il s'agit donc d'un article de débutant à débutant.
Certes, beaucoup de choses peuvent être corrigées ici, donc j'accepterai volontiers tous les commentaires dans les commentaires et j'essaierai de mettre à jour les changements dès que possible. Il est également possible qu'un tel article existe déjà, et j'utilise très mal le moteur de recherche. Ensuite, veuillez lui donner un lien, et dans ce cas, je supprimerai l'article et irai saupoudrer de cendres sur ma tête.
Données source
- Serveur VDS
- Système d'exploitation: CentOS 7x64
- Projet Go avec la structure suivante:
src/ public/ index.html main.go
Configuration du serveur: créer un service
Créez d'abord un service pour notre application. Dans CentOS 7, c'est assez simple. Vous devez écrire un tel script dans un fichier appelé serviceName.service:
[Unit]
Le script lui-même doit être placé dans le dossier etc / systemd / system /
Configuration SSH
Sur le serveur, exécutez la commande:
ssh-keygen -f /etc/ssh/hmp.key
Sur demande
Entrez la phrase secrète (vide pour aucune phrase secrète)
n'entrez pas de mot de passe, appuyez simplement sur Entrée.
Deux fichiers sont générés dans le dossier / etc / ssh /:
- hmp.key - clé privée
- hmp.key.pub - clé publique
Nous avons besoin d'une clé privée. Affichez son contenu à l'aide de la commande:
cat /etc/ssh/hmp.key
Cela ressemblera à ceci:
-----BEGIN RSA PRIVATE KEY----- { } -----END RSA PRIVATE KEY-----
Tout copier complètement dans votre presse-papiers
ATTENTION! - non seulement la clé elle-même, mais aussi
----- COMMENCER LA CLÉ PRIVÉE RSA ----- et ----- FIN DE LA CLÉ PRIVÉE RSA -----
Configuration de Gitlab
Remplissez d'abord les données importantes pour le dépôt (nom d'utilisateur, mot de passe, etc.).
Même si votre référentiel est public, ils resteront fermés.
Dans Gitlab dans le référentiel, allez dans Paramètres -> CI / CD -> Variables. Nous y créons les variables suivantes:
- SSH_PRIVATE_KEY - collez ici la valeur copiée dans le paragraphe précédent
- USER_PASS - mot de passe utilisateur à partir duquel l'application sera lancée
- UTILISATEUR - nom d'utilisateur à partir duquel l'application sera lancée
- HOST - l'adresse de votre VDS
- TARGET_DIR_ON_HOST - le dossier cible dans lequel votre service sera situé dans mon exemple est / username / service /
- SERVICE_NAME - nom du service
- GROUP_NAME est votre nom d'utilisateur Gitlab
- REPOSITORY_NAME - le nom de votre référentiel
Ajoutez le fichier .gitlab-ci.yml au référentiel avec le contenu suivant:
image: golang:latest before_script:
Après le réglage, nous poussons ce script dans le référentiel et nous avons un assemblage et un déploiement prêts à l'emploi. C’est tout!
J'espère que l'article vous a été utile. Pour toutes questions et commentaires, je serai heureux de répondre dans les commentaires!