Article
· Nov 27, 2023 5m de lecture

Diffusion continue de votre solution InterSystems à l'aide de GitLab - Partie III : Installation et configuration de GitLab

Dans cette série d'articles, j'aimerais présenter et discuter de plusieurs approches possibles pour le développement de logiciels avec les technologies d'InterSystems et GitLab. J'aborderai des sujets tels que:

  • Git 101
  • Flux Git (processus de développement)
  • Installation de GitLab
  • Flux de travail GitLab
  • Diffusion continue
  • Installation et configuration de GitLab
  • GitLab CI/CD

Dans le premier article, nous avons évoqué les notions de base de Git, les raisons pour lesquelles une compréhension approfondie des concepts de Git est importante pour le développement de logiciels modernes et la manière dont Git peut être utilisé pour développer des logiciels.

Dans le deuxième article, nous avons évoqué le flux de travail GitLab - un processus complet du cycle de vie du logiciel ainsi que Diffusion continue.

Dans cet article, nous allons examiner:

  • Installation et configuration de GitLab
  • Connexion de vos environnements à GitLab

Installation de GitLab

Nous allons installer GitLab sur site. TIl y a plusieurs façons d'installer GitLab  : à partir des sources, d'un paquet, dans un conteneur. Je ne vais pas décrire toutes les étapes ici, il y a un guide pour cela. Quelques notes tout de même.

Conditions préalables :

  • Serveur séparé - étant donné qu'il s'agit d'une application web et qu'elle nécessite beaucoup de ressources, il est préférable de l'exécuter sur un serveur séparé
  • Linux
  • ((facultatif mais fortement recommandé) Domaine : nécessaire pour exécuter les pages et  sécuriser l'ensemble de l'installation

Configuration

Tout d'abord, vous auriez probablement besoin d'envoyer courriers électroniques avec notifications.

Ensuite, je recommande d'installer Pages.. Comme nous l'avons vu dans l'article précédent, les objets du script peuvent être téléchargés dans GitLab. L'utilisateur peut les télécharger mais il est utile de pouvoir les ouvrir directement dans le navigateur et pour cela nous avons besoin de pages.

Pourquoi avez-vous besoin de pages :

Et comme les pages html peuvent être redirigées au téléchargement, elles peuvent être utilisées pour envoyer l'utilisateur là où il le souhaite. Par exemple, voici le code qui génère une page html envoyant un utilisateur au dernier test unitaire exécuté (au moment de la génération du code html) :

ClassMethod writeTestHTML()
{
  set text = ##class(%Dictionary.XDataDefinition).IDKEYOpen($classname(), "html").Data.Read()
  set text = $replace(text, "!!!", ..getURL())
  
  set file = ##class(%Stream.FileCharacter).%New()
  set name = "tests.html"
  do file.LinkToFile(name)
  do file.Write(text)
  quit file.%Save()
}

ClassMethod getURL()
{
  set url = "http://host:57772"
  set url = url _ $system.CSP.GetDefaultApp("%SYS")
  set url = url_"/%25UnitTest.Portal.Indices.cls?Index="_ $g(^UnitTest.Result, 1) _ "&$NAMESPACE=" _ $zconvert($namespace,"O","URL")
  quit url
}

XData html
{
<html lang="en-US">
  <head>
    <meta charset="UTF-8"/>
    <meta http-equiv="refresh" content="0; url=!!!"/>
    <script type="text/javascript">window.location.href = "!!!"</script>
  </head>
  <body>
    If you are not redirected automatically, follow this <a href='!!!'>link to tests</a>.
  </body>
</html>
}

Il y a un bug que j'ai rencontré en utilisant des pages (erreur 502 lors de la navigation dans les artefacts) - voici une solution.

 

Connexion de vos environnements à GitLab

Pour exécuter les scripts CD, vous avez besoin d'environnements - de serveurs configurés pour exécuter votre application. En supposant que vous ayez un serveur Linux avec un produit InterSystems installé (disons InterSystems IRIS, mais cela fonctionnerait aussi avec Caché et Ensemble), la procédure suivante vous permettra de connecter l'environnement à GitLab :

  1. Installez le système d'exécution de GitLab
  2. Enregistrez le système d'exécution de GitLab
  3. Autorisez le système d'exécution à appeler InterSystems IRIS

Remarque importante sur l'installation du système d'exécution de GitLab - Ne clonez pas de serveurs après avoir installé le système d'exécution GitLab. Les résultats sont imprévisibles et très malvenus.

Enregistrez le système d'exécution de GitLab

Après avoir exécuté  le programme initial :

sudo gitlab-runner register

Plusieurs instructions vous seront présentées et, bien que la plupart des étapes soient relativement simples,  certaines ne le sont pas :

Veuillez saisir le jeton gitlab-ci pour ce système d'exécution

Il y a plusieurs jetons disponibles:

  • Un jeton pour l'ensemble du système (disponible dans les paramètres d'administration)
  • Un jeton pour chaque projet  (disponible dans les paramètres du projet)

Lorsque vous connectez un système d'exécution pour exécuter un CD pour un projet spécifique, vous devez spécifier un jeton pour ce projet.

Veuillez saisir les balises gitlab-ci pour ce système d'exécution (séparées par des virgules):

Dans la configuration de votre CD, vous pouvez filtrer les scripts qui sont exécutés sur les différentes balises. Donc, dans le cas le plus simple, spécifiez une balise qui serait le nom de l'environnement.

Veuillez saisir le programme d'exécution : ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
docker

Si vous utilisez le serveur habituel sans docker, choisissez shell.  Docker sera abordé dans les parties suivantes.

Autorisez le système d'exécution à appeler InterSystems IRIS

Après avoir connecté le système d'exécution à GitLab, nous devons lui permettre d'interagir avec InterSystems IRIS, pour ce faire :

  1. L'utilisateur gitlab-runner doit être en mesure d'appeler la session. Pour ce faire, ajoutez-le au groupe cacheusr: 
    • usermod -a -G cacheusr gitlab-runner
  2. Créez l'utilisateur gitlab-runner dans InterSystems IRIS et lui donner des rôles pour effectuer des tâches CD (écrire dans la base de données, etc.)
  3. Autorisez l'authentification au niveau de l'OS

Pour les points 2 et 3, d'autres approches peuvent être utilisées, comme le passage utilisateur/passe, mais je pense que l'authentification par le système OS est préférable. 

Conclusion

Dans cette partie::

  • GitLab installé
  • Vos environnements connectés à GitLab

Prochaine étape

Dans la partie suivante, nous rédigerions notre configuration de diffusion continue.

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer