Hudson Jenkins - Serveur d'intégration continue
Comment ça fonctionne ?
Technologie
Jenkins est une application web, développé en java. De ce fait, il est installable sur un grand nombre de système d'exploitation. Avec Jenkins, il est possible d'utiliser un grand nombre d'outils qui ne sont pas intégré directement à Jenkins.
Installations
Type d'installation
Il existe plusieurs manière d'installer Jenkins :
- serveur d'application web : avec tomcat (par exemple) vous pouvez rapidement mettre en place cette application.
- standalone : sans utiliser de serveur d'application web, une ligne de commande simple pour exécuter le "war" de jenkins
- slave : utiliser pour effectuer de la distribution de job et réduire l'utilisation d'un serveur. Chaque slave est rattaché à un et un seul master, mais un master peut avoir un grand nombre de slave. Ne peut se faire qu'à partir d'un jenkins installer en master (l'une des deux méthodes précédente).
Comparatif des installations
Je vais maintenant comparer les installations en "web-app" et en standalone. Je ne peut pas mettre dans le comparatif l'installation
slave car son optique est très différente de ces deux installations.
Web-App | Standalone | |
---|---|---|
Avantages |
configuration pré-établit par le serveur d'application installation rapide et simple |
ne nécessite pas de serveur d'application plusieurs instances sur un même serveur en utilisant des ports différents |
Inconvénients | nécessite un serveur d'application | déploiement à grande envergure moins simple |
Pour toutes ces installations, il est possible de distinguer le dossier d'installation et le dossier d'utilisation de jenkins. Le dossier d'installation est composé des exécutables et des fichiers de configuration de la plateforme tandis que le dossier d'utilisation est composé des configurations du service. De base, ces deux dossiers sont les mêmes, mais en mettant en place la variables d'environnement HUDSON_HOME il est possible de les séparer. Cette manipulation peut être utile si vous souhaitez que des utiisateurs puissent accèder aux fichiers des jobs, mais pas au war ni à la configuration de jenkins.
Installation web-app

Installation standalone
Comment je l'ai dit précédemment, une simple ligne de commande permet démarrer Jenkins :
java -jar jenkins.warUn certain nombre d'option peuvent être rajouter pour changer les paramètres de base de l'installation :
- -httpPort : permet de changer le port HTTP sur lequel le service va se mettre en écoute. De base, il est en écoute sur le port 8080
- -ajp13Port : permet de mettre le service en écoute sur un port AJP, désactivé par défaut. AJP permet par exemple de mettre en place un système de LoadBalancing entre plusieurs instance d'un même service pour assurer de la haute disponibilité.
- -daemon : pour mettre le service en tâche de fond. Avec ce paramètre, le service mettera tous ses messages de fonctionnement dans un fichier plutôt que dans la fenêtre de commande.
Si vous effectuer cette installation sur un OS Windows, il vous est possible de transformer jenkins en service windows en passant par l'écran d'administration de jenkins.


Installation slave
Comme je l'ai dit précédemment, les slaves sont des instances de Jenkins qui sont rattachées à un master. Pour ce faire, c'est pas très compliqué : Administrer Hudson >> Gérer les noeuds >> Nouveau noeud.
Oui, les instances de Jenkins sont considérés comme des noeuds. D'ailleurs le master est lui aussi un noeud. Si on fait l'analogie avec les arbres informatiques, il s'agit d'un arbre à 1 niveau, le master est la racine, les slaves sont les feuilles. Les slaves ne peuvent avoir de slave
Lors de la configuration de ce nouveau noeud, vous pourrez alors spécifier sont nom, le répertoire dans lequel Jenkins s'exécutera sur l'hôte distant et la manière dont l'instance doit être démarrer. A noter qu'il vous est possible de rajouter un "étiquette" au slave. Cette étiquette permet de faire des pools de slave. Ainsi, les job demandant à s'exécuter sur un hôte windows iront s'éxécuter sur une instance du pool "windows".