Continuous Integration Tutorial

Made by
Hamouda Ahmed
Contents
●

1. Introduction

●

2. Git (Ubunto 12.04 LTS)

●

3. Tomcat6

●

4. Jenkins
–
–

4.2 Ajout du plugin Git

–

4.3 Création d'un nouveau job

–

4.4 Ajout du plugin Deploy

–
●

4.1 Installation depuis le War

4.4 Configuration du Job GameOfLife pour déploiement

FAQ

25.12.13

Your name here (insert->page number)

2
1. Introduction: Plateforme de travail
Ubunto + Gestionnaire de bureau XFCE4

25.12.13

Your name here (insert->page number)

3
1. Introduction: Plateforme de travail
Ubunto + Gestionnaire de bureau XFCE4

25.12.13

Your name here (insert->page number)

4
1. Introduction: Plateforme de travail
Le projet game-of-life qu'on va utiliser tout au long de ce tutoriel disponible à partir de ce lien:
https://github.com/wakaleo/game-of-life

25.12.13

Your name here (insert->page number)

5
1. Introduction: Plateforme de travail
CentOS installé sur une machine virtuelle Qemu

25.12.13

Your name here (insert->page number)

6
1. Introduction: Plateforme de travail
Pour que la VM CentOS soit disponible en ssh pour jenkins plus tard il faut configurer l'accès
comme suit:
Hostfwd: forward tcp port 2222 from host to port 22 on guest

Ou bien : -redir tcp:2222::22

25.12.13

Your name here (insert->page number)

7
1. Introduction: Plateforme de travail
J'ai crée un script à partir de la commande du slide précédent:

25.12.13

Your name here (insert->page number)

8
1. Introduction: Plateforme de travail

25.12.13

Your name here (insert->page number)

9
1. Introduction: Plateforme de travail

25.12.13

Your name here (insert->page number)

10
1. Introduction: Plateforme de travail

25.12.13

Your name here (insert->page number)

11
2. Git
Initialisation du repos : git init chemin_du_repo
Ajout des fichiers du repos : git add chemin_du_repo/*
Pour que le repo soit disponible pour tout les utilisateurs de git, il faut faire un commit:
git commit -m “commentaire”

25.12.13

Your name here (insert->page number)

12
2. Git

25.12.13

Your name here (insert->page number)

13
2. Git

25.12.13

Your name here (insert->page number)

14
2. Git

25.12.13

Your name here (insert->page number)

15
2. Git
Si vous préférrer l'interface graphique, vous pouvez installé gitk sur ubuntu:

25.12.13

Your name here (insert->page number)

16
2. Git

25.12.13

Your name here (insert->page number)

17
2. Git

25.12.13

Your name here (insert->page number)

18
2. Git

25.12.13

Your name here (insert->page number)

19
2. Git

25.12.13

Your name here (insert->page number)

20
2. Tomcat6
1. Vérifier si tomcat est déjà installé ou non,
généralement après une installation CentOS il est déjà installé

2. Si non installé, en mode root faite l'installation avec yum

25.12.13

Your name here (insert->page number)

21
2. Tomcat6
3.Vérifier l'accès à la page Web de Tomcat (Initialement ça ne marche que pour localhost)

25.12.13

Your name here (insert->page number)

22
2. Tomcat6
4.Activer la résolution des noms d'hôtes en activant l'option resolve hosts (optionnel)

5.Maintenant on peut y accéder à traver l'@Ip de la machine

25.12.13

Your name here (insert->page number)

23
2. Tomcat6
6.Activer l'accès pour l'interface d'administration de tomcat6,
en ajoutant un utilisateur avec le rôle manager

25.12.13

Your name here (insert->page number)

24
2. Tomcat6
7.Accèder à page d'administration de tomcat6: http://localhost:8080/manager

25.12.13

Your name here (insert->page number)

25
2. Tomcat6
7.Maintenant on peut administrer tomcat6

25.12.13

Your name here (insert->page number)

26
3. Tomcat6

25.12.13

Your name here (insert->page number)

27
4.Jenkins

25.12.13

Your name here (insert->page number)

28
4.1 Installation depuis le War
1. Télécharger la dernière version du war sur : http://jenkins-ci.org

25.12.13

Your name here (insert->page number)

29
4.1 Installation depuis le War
2. Déployer le .war depuis Tomcat Manager:

25.12.13

Your name here (insert->page number)

30
4.1 Installation depuis le War
3. Configurer le répertoire de Jenkins dans /etc/tomcat6/tomcat.conf

25.12.13

Your name here (insert->page number)

31
4.1 Installation depuis le War
4. Configurer le répertoire de Jenkins dans /etc/tomcat6/context.xml

25.12.13

Your name here (insert->page number)

32
4.1 Installation depuis le War
5. Vérifier que tomcat a les droits nécessaires sur le dossier JENKINS_HOME cad /usr/jenkins

25.12.13

Your name here (insert->page number)

33
4.1 Installation depuis le War
5.bis: Sinon exécuter la commande suivante :

25.12.13

Your name here (insert->page number)

34
4.1 Installation depuis le War
6. Jenkins est maintenant prêt à l'utilisation:

25.12.13

Your name here (insert->page number)

35
4.1 Installation depuis le War
6. Jenkins est maintenant prêt à l'utilisation:

25.12.13

Your name here (insert->page number)

36
4.1 Installation depuis le War

25.12.13

Your name here (insert->page number)

37
4.2 Installation du Git Plugin

25.12.13

Your name here (insert->page number)

38
4.2 Installation du Git Plugin

25.12.13

Your name here (insert->page number)

39
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

40
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

41
4.3 Création d'nouveau Job
Afin d'accèder au repo git sur la machine hôte, on doit configurer la machine guest (CentOS)
exécutant Tomcat, afin qu'elle puisse se connecter automatiquement sur ssh à la machine hôte.
Puisque tomcat est l'utilisateur de Tomcat6, on doit configurer le jeu de clé pour cette utilisateur.
Pour ce faire, on procède comme suit:
1. Création du dossier .ssh sous le répertoire home (/usr/share/tomcat6) de l'utilisateur tomcat
Tout en lui donnant les priviliège de lecture/écriture:

25.12.13

Your name here (insert->page number)

42
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

43
4.3 Création d'nouveau Job
2. Se connecter en tant que l'utilisateur tomcat, créer le jeu de clé et les copier vers la machine hôte
qui héberge le serveur git :

25.12.13

Your name here (insert->page number)

44
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

45
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

46
4.3 Création d'nouveau Job
Pour compiler le projet on a besoin du jdk-devel, on doit l'installer:

25.12.13

Your name here (insert->page number)

47
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

48
4.3 Création d'nouveau Job
Configurer le projet pour compiler le projet pour jdk adéquat:

25.12.13

Your name here (insert->page number)

49
4.3 Création d'nouveau Job
Configurer le projet pour compiler le projet pour jdk adéquat:

25.12.13

Your name here (insert->page number)

50
4.3 Création d'nouveau Job
Configurer le projet pour utiliser maven (l'installation se fera automtiquement pendant le premier build):

25.12.13

Your name here (insert->page number)

51
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

52
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

53
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

54
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

55
4.3 Création d'nouveau Job
Jenkins ne peut trouver le répertoire .m2, il génère ainsi une erreur:

25.12.13

Your name here (insert->page number)

56
4.3 Création d'nouveau Job
Pour remédier à cette erreur il suffit de créer le dossier .m2 et donner les privilèges nécessaire
À l'utilisateur tomcat puisqu'il est le conteneur de l'appilication Jenkins qui s'éxécute sous ses
Droits d'accès

25.12.13

Your name here (insert->page number)

57
4.3 Création d'nouveau Job
Une autre erreur de même type pour le dossier .jenkins:

25.12.13

Your name here (insert->page number)

58
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

59
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

60
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

61
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

62
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

63
4.3 Création d'nouveau Job

25.12.13

Your name here (insert->page number)

64
4.4 Ajout du plugin de déploiement

25.12.13

Your name here (insert->page number)

65
4.4 Ajout du plugin de déploiement

25.12.13

Your name here (insert->page number)

66
4.4 Ajout du plugin de déploiement

25.12.13

Your name here (insert->page number)

67
4.4 Ajout du plugin de déploiement

25.12.13

Your name here (insert->page number)

68
4.4 Ajout du plugin de déploiement

25.12.13

Your name here (insert->page number)

69
4.4 Configuration du déploiement automatique

25.12.13

Your name here (insert->page number)

70
4.4 Configuration du déploiement automatique

25.12.13

Your name here (insert->page number)

71
4.4 Configuration du déploiement automatique

25.12.13

Your name here (insert->page number)

72
4.4 Configuration du déploiement automatique

25.12.13

Your name here (insert->page number)

73
4.4 Configuration du déploiement automatique
Le jeu a été déployé sur tomcat et est accessible depuis l'interface d'administration des webapps
De Tomcat http://localhost:8080/manager/

25.12.13

Your name here (insert->page number)

74
4.4 Configuration du déploiement automatique
Maintenant on peut y jouer !

25.12.13

Your name here (insert->page number)

75
4.4 Configuration du déploiement automatique

25.12.13

Your name here (insert->page number)

76
4.4 Configuration du déploiement automatique

25.12.13

Your name here (insert->page number)

77
SUCCESS

25.12.13

Your name here (insert->page number)

78
FAQ

25.12.13

Your name here (insert->page number)

79
FAQ
Si vous avez des remarques ou bien des conseils sur les configs n'hésitez pas à me
contacter sur dimmumeister@gmail.com pour que je les prennent en considération
et met à jour ce tutorial. Merci d'avance :)

25.12.13

Your name here (insert->page number)

80

Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu

  • 1.
  • 2.
    Contents ● 1. Introduction ● 2. Git(Ubunto 12.04 LTS) ● 3. Tomcat6 ● 4. Jenkins – – 4.2 Ajout du plugin Git – 4.3 Création d'un nouveau job – 4.4 Ajout du plugin Deploy – ● 4.1 Installation depuis le War 4.4 Configuration du Job GameOfLife pour déploiement FAQ 25.12.13 Your name here (insert->page number) 2
  • 3.
    1. Introduction: Plateformede travail Ubunto + Gestionnaire de bureau XFCE4 25.12.13 Your name here (insert->page number) 3
  • 4.
    1. Introduction: Plateformede travail Ubunto + Gestionnaire de bureau XFCE4 25.12.13 Your name here (insert->page number) 4
  • 5.
    1. Introduction: Plateformede travail Le projet game-of-life qu'on va utiliser tout au long de ce tutoriel disponible à partir de ce lien: https://github.com/wakaleo/game-of-life 25.12.13 Your name here (insert->page number) 5
  • 6.
    1. Introduction: Plateformede travail CentOS installé sur une machine virtuelle Qemu 25.12.13 Your name here (insert->page number) 6
  • 7.
    1. Introduction: Plateformede travail Pour que la VM CentOS soit disponible en ssh pour jenkins plus tard il faut configurer l'accès comme suit: Hostfwd: forward tcp port 2222 from host to port 22 on guest Ou bien : -redir tcp:2222::22 25.12.13 Your name here (insert->page number) 7
  • 8.
    1. Introduction: Plateformede travail J'ai crée un script à partir de la commande du slide précédent: 25.12.13 Your name here (insert->page number) 8
  • 9.
    1. Introduction: Plateformede travail 25.12.13 Your name here (insert->page number) 9
  • 10.
    1. Introduction: Plateformede travail 25.12.13 Your name here (insert->page number) 10
  • 11.
    1. Introduction: Plateformede travail 25.12.13 Your name here (insert->page number) 11
  • 12.
    2. Git Initialisation durepos : git init chemin_du_repo Ajout des fichiers du repos : git add chemin_du_repo/* Pour que le repo soit disponible pour tout les utilisateurs de git, il faut faire un commit: git commit -m “commentaire” 25.12.13 Your name here (insert->page number) 12
  • 13.
    2. Git 25.12.13 Your namehere (insert->page number) 13
  • 14.
    2. Git 25.12.13 Your namehere (insert->page number) 14
  • 15.
    2. Git 25.12.13 Your namehere (insert->page number) 15
  • 16.
    2. Git Si vouspréférrer l'interface graphique, vous pouvez installé gitk sur ubuntu: 25.12.13 Your name here (insert->page number) 16
  • 17.
    2. Git 25.12.13 Your namehere (insert->page number) 17
  • 18.
    2. Git 25.12.13 Your namehere (insert->page number) 18
  • 19.
    2. Git 25.12.13 Your namehere (insert->page number) 19
  • 20.
    2. Git 25.12.13 Your namehere (insert->page number) 20
  • 21.
    2. Tomcat6 1. Vérifiersi tomcat est déjà installé ou non, généralement après une installation CentOS il est déjà installé 2. Si non installé, en mode root faite l'installation avec yum 25.12.13 Your name here (insert->page number) 21
  • 22.
    2. Tomcat6 3.Vérifier l'accèsà la page Web de Tomcat (Initialement ça ne marche que pour localhost) 25.12.13 Your name here (insert->page number) 22
  • 23.
    2. Tomcat6 4.Activer larésolution des noms d'hôtes en activant l'option resolve hosts (optionnel) 5.Maintenant on peut y accéder à traver l'@Ip de la machine 25.12.13 Your name here (insert->page number) 23
  • 24.
    2. Tomcat6 6.Activer l'accèspour l'interface d'administration de tomcat6, en ajoutant un utilisateur avec le rôle manager 25.12.13 Your name here (insert->page number) 24
  • 25.
    2. Tomcat6 7.Accèder àpage d'administration de tomcat6: http://localhost:8080/manager 25.12.13 Your name here (insert->page number) 25
  • 26.
    2. Tomcat6 7.Maintenant onpeut administrer tomcat6 25.12.13 Your name here (insert->page number) 26
  • 27.
    3. Tomcat6 25.12.13 Your namehere (insert->page number) 27
  • 28.
    4.Jenkins 25.12.13 Your name here(insert->page number) 28
  • 29.
    4.1 Installation depuisle War 1. Télécharger la dernière version du war sur : http://jenkins-ci.org 25.12.13 Your name here (insert->page number) 29
  • 30.
    4.1 Installation depuisle War 2. Déployer le .war depuis Tomcat Manager: 25.12.13 Your name here (insert->page number) 30
  • 31.
    4.1 Installation depuisle War 3. Configurer le répertoire de Jenkins dans /etc/tomcat6/tomcat.conf 25.12.13 Your name here (insert->page number) 31
  • 32.
    4.1 Installation depuisle War 4. Configurer le répertoire de Jenkins dans /etc/tomcat6/context.xml 25.12.13 Your name here (insert->page number) 32
  • 33.
    4.1 Installation depuisle War 5. Vérifier que tomcat a les droits nécessaires sur le dossier JENKINS_HOME cad /usr/jenkins 25.12.13 Your name here (insert->page number) 33
  • 34.
    4.1 Installation depuisle War 5.bis: Sinon exécuter la commande suivante : 25.12.13 Your name here (insert->page number) 34
  • 35.
    4.1 Installation depuisle War 6. Jenkins est maintenant prêt à l'utilisation: 25.12.13 Your name here (insert->page number) 35
  • 36.
    4.1 Installation depuisle War 6. Jenkins est maintenant prêt à l'utilisation: 25.12.13 Your name here (insert->page number) 36
  • 37.
    4.1 Installation depuisle War 25.12.13 Your name here (insert->page number) 37
  • 38.
    4.2 Installation duGit Plugin 25.12.13 Your name here (insert->page number) 38
  • 39.
    4.2 Installation duGit Plugin 25.12.13 Your name here (insert->page number) 39
  • 40.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 40
  • 41.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 41
  • 42.
    4.3 Création d'nouveauJob Afin d'accèder au repo git sur la machine hôte, on doit configurer la machine guest (CentOS) exécutant Tomcat, afin qu'elle puisse se connecter automatiquement sur ssh à la machine hôte. Puisque tomcat est l'utilisateur de Tomcat6, on doit configurer le jeu de clé pour cette utilisateur. Pour ce faire, on procède comme suit: 1. Création du dossier .ssh sous le répertoire home (/usr/share/tomcat6) de l'utilisateur tomcat Tout en lui donnant les priviliège de lecture/écriture: 25.12.13 Your name here (insert->page number) 42
  • 43.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 43
  • 44.
    4.3 Création d'nouveauJob 2. Se connecter en tant que l'utilisateur tomcat, créer le jeu de clé et les copier vers la machine hôte qui héberge le serveur git : 25.12.13 Your name here (insert->page number) 44
  • 45.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 45
  • 46.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 46
  • 47.
    4.3 Création d'nouveauJob Pour compiler le projet on a besoin du jdk-devel, on doit l'installer: 25.12.13 Your name here (insert->page number) 47
  • 48.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 48
  • 49.
    4.3 Création d'nouveauJob Configurer le projet pour compiler le projet pour jdk adéquat: 25.12.13 Your name here (insert->page number) 49
  • 50.
    4.3 Création d'nouveauJob Configurer le projet pour compiler le projet pour jdk adéquat: 25.12.13 Your name here (insert->page number) 50
  • 51.
    4.3 Création d'nouveauJob Configurer le projet pour utiliser maven (l'installation se fera automtiquement pendant le premier build): 25.12.13 Your name here (insert->page number) 51
  • 52.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 52
  • 53.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 53
  • 54.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 54
  • 55.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 55
  • 56.
    4.3 Création d'nouveauJob Jenkins ne peut trouver le répertoire .m2, il génère ainsi une erreur: 25.12.13 Your name here (insert->page number) 56
  • 57.
    4.3 Création d'nouveauJob Pour remédier à cette erreur il suffit de créer le dossier .m2 et donner les privilèges nécessaire À l'utilisateur tomcat puisqu'il est le conteneur de l'appilication Jenkins qui s'éxécute sous ses Droits d'accès 25.12.13 Your name here (insert->page number) 57
  • 58.
    4.3 Création d'nouveauJob Une autre erreur de même type pour le dossier .jenkins: 25.12.13 Your name here (insert->page number) 58
  • 59.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 59
  • 60.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 60
  • 61.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 61
  • 62.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 62
  • 63.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 63
  • 64.
    4.3 Création d'nouveauJob 25.12.13 Your name here (insert->page number) 64
  • 65.
    4.4 Ajout duplugin de déploiement 25.12.13 Your name here (insert->page number) 65
  • 66.
    4.4 Ajout duplugin de déploiement 25.12.13 Your name here (insert->page number) 66
  • 67.
    4.4 Ajout duplugin de déploiement 25.12.13 Your name here (insert->page number) 67
  • 68.
    4.4 Ajout duplugin de déploiement 25.12.13 Your name here (insert->page number) 68
  • 69.
    4.4 Ajout duplugin de déploiement 25.12.13 Your name here (insert->page number) 69
  • 70.
    4.4 Configuration dudéploiement automatique 25.12.13 Your name here (insert->page number) 70
  • 71.
    4.4 Configuration dudéploiement automatique 25.12.13 Your name here (insert->page number) 71
  • 72.
    4.4 Configuration dudéploiement automatique 25.12.13 Your name here (insert->page number) 72
  • 73.
    4.4 Configuration dudéploiement automatique 25.12.13 Your name here (insert->page number) 73
  • 74.
    4.4 Configuration dudéploiement automatique Le jeu a été déployé sur tomcat et est accessible depuis l'interface d'administration des webapps De Tomcat http://localhost:8080/manager/ 25.12.13 Your name here (insert->page number) 74
  • 75.
    4.4 Configuration dudéploiement automatique Maintenant on peut y jouer ! 25.12.13 Your name here (insert->page number) 75
  • 76.
    4.4 Configuration dudéploiement automatique 25.12.13 Your name here (insert->page number) 76
  • 77.
    4.4 Configuration dudéploiement automatique 25.12.13 Your name here (insert->page number) 77
  • 78.
    SUCCESS 25.12.13 Your name here(insert->page number) 78
  • 79.
    FAQ 25.12.13 Your name here(insert->page number) 79
  • 80.
    FAQ Si vous avezdes remarques ou bien des conseils sur les configs n'hésitez pas à me contacter sur dimmumeister@gmail.com pour que je les prennent en considération et met à jour ce tutorial. Merci d'avance :) 25.12.13 Your name here (insert->page number) 80

Notes de l'éditeur

  • #2 Ceci est un tutorial pas à pas de l'installation et la configuration d'une plateforme permettant l'intégration continue automatique d'un projet MAVEN3 et son déploiement.