0% ont trouvé ce document utile (0 vote)
12 vues11 pages

Rapport Final Table Matiere Pages

Ce document présente un guide complet pour la mise en place d'un pipeline CI/CD pour le déploiement d'une instance Odoo personnalisée, utilisant GitHub, Docker, Jenkins et Kubernetes. Il détaille les étapes de préparation de l'environnement, le clonage du dépôt, les scripts utilisés, ainsi que la configuration et l'exécution du pipeline Jenkins. Bien que des erreurs aient été rencontrées, le projet démontre une intégration réussie des outils pour une livraison continue.

Transféré par

Océane Ndiomo
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
12 vues11 pages

Rapport Final Table Matiere Pages

Ce document présente un guide complet pour la mise en place d'un pipeline CI/CD pour le déploiement d'une instance Odoo personnalisée, utilisant GitHub, Docker, Jenkins et Kubernetes. Il détaille les étapes de préparation de l'environnement, le clonage du dépôt, les scripts utilisés, ainsi que la configuration et l'exécution du pipeline Jenkins. Bien que des erreurs aient été rencontrées, le projet démontre une intégration réussie des outils pour une livraison continue.

Transféré par

Océane Ndiomo
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

CONSULTING SERVICE FOR

COMPREHENSIVE GUIDE TO TRANSITIONING


WAPIS DACORE DEPLOYMENT TO KUBERNETES

THE WEST AFRICAN POLICE INFORMATION SYSTEM PROGRAMME

Page
Table of contents
CONTENT.......................................................................................................................................................
1. INTRODUCTION.....................................................................................................................................
1.1. PURPOSE..................................................................................................................................................
1.2. SCOPE.....................................................................................................................................................
2. PREREQUISITES......................................................................................................................................
2.1. SYSTEM REQUIREMENTS..............................................................................................................................
2.2. USER PERMISSIONS....................................................................................................................................
2.3. NETWORK REQUIREMENTS AND PORTS..........................................................................................................
3. ENABLING SSH ON UBUNTU SERVER 22.04.5..........................................................................................

Port Protocol Description


6443 TCP Kubernetes API server
2379-2380 TCP etcd server client API
10250 TCP Kubelet API
10251 TCP kube-scheduler
10252 TCP kube-controller-manager
179 TCP/UDP BGP communication (if using Calico CNI)
Port Protocol Description
10250 TCP Kubelet API
30000-32767 TCP NodePort services

Déploiement CI/CD de Odoo avec Docker, Kubernetes et Jenkins


Rapport Technique

Rédigé par : Océane NDIOMO


Contexte : Stage
Date : 29/07/2025

Table des matières

1. Introduction

2. Préparation de l’environnement

3. Clonage du dépôt GitHub

4. Scripts utilisés

4.1 Jenkinsfile

Page
4.2 Dockerfile

4.3 Manifest Kubernetes

5. Configuration et exécution du pipeline Jenkins

6. Logs et erreurs rencontrés

7. Environnement Kubernetes

8. Conclusion

1. Introduction

Ce rapport présente l’implémentation d’un pipeline CI/CD complet pour le déploiement d’une
instance Odoo personnalisée. Le projet utilise GitHub pour la gestion du code source, Docker
pour la conteneurisation, Jenkins pour l’automatisation des builds et Kubernetes pour
l’orchestration des conteneurs.

2. Préparation de l’environnement

• Système utilisé : Windows avec Docker Desktop.


• Téléchargement et exécution de l’image Jenkins :

docker pull jenkins/jenkins:lts


docker run -d --name jenkins -p 8080:8080 -v jenkins_home:/var/jenkins_home
jenkins/jenkins:lts

3. Clonage du dépôt GitHub

Commande réalisée pour cloner le dépôt contenant tous les scripts :

git clone https://github.com/Oceane-Ndiomo/odoo-docker.git


git config --global http.sslVerify true
cd ~/odoo-docker
git pull

4. Scripts utilisés

4.1 Jenkinsfile

pipeline {
agent {
docker {
image 'docker:20.10.24-dind'
}
}
stages {

Page
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build Docker Image') {
steps {
sh 'docker build -t enaeco/monodoo:17-custom .'
}
}
stage('Push to Docker Hub') {
steps {
withCredentials([usernamePassword(credentialsId: 'docker-hub-credentials',
usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) {
sh 'echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin'
sh 'docker push enaeco/monodoo:17-custom'
}
}
}
stage('Deploy to Kubernetes') {
steps {
sh 'kubectl apply -f odoo-k8s.yaml'
}
}
}
}

4.2 Dockerfile

FROM odoo:17

COPY ./addons /mnt/extra-addons

USER root

RUN chown -R odoo:odoo /mnt/extra-addons

USER odoo

4.3 Manifest Kubernetes

apiVersion: apps/v1

Page
kind: Deployment
metadata:
name: odoo-deployment
spec:
replicas: 1
selector:
matchLabels:
app: odoo
template:
metadata:
labels:
app: odoo
spec:
containers:
- name: odoo
image: enaeco/monodoo:17-custom
ports:
- containerPort: 8069
---
apiVersion: v1
kind: Service
metadata:
name: odoo-service
spec:
selector:
app: odoo
ports:
- protocol: TCP
port: 80
targetPort: 8069
type: LoadBalancer

5. Configuration et exécution du pipeline Jenkins

Le pipeline Jenkins a été configuré avec l’URL du dépôt, les credentials Docker Hub et le script
Jenkinsfile. Ci-dessous, les captures illustrent l’interface de configuration et l’état du conteneur
Jenkins actif.

Page
Figure 1 : Configuration du pipeline Jenkins.

Page
Figure 2 : Paramètres du dépôt SCM.

Page
Figure 3 : Conteneur Jenkins actif dans Docker Desktop.

6. Logs et erreurs rencontrés

Lors de l’exécution, des erreurs ont bloqué certaines étapes : `fatal: not in a git directory` et
permissions `docker: not found`. Voici les journaux Jenkins détaillés.

Page
Figure 4 : Erreur Git SCM.

Page
Figure 5 : Stack trace détaillée Jenkins.

Page
Figure 6 : Historique des builds échoués.

7. Environnement Kubernetes

Le cluster Kubernetes est exécuté en local via Docker Desktop avec `kubectl` pour gérer le
déploiement. Un fichier manifest expose Odoo avec un `LoadBalancer` pour rendre le service
accessible sur le port 8069.

8. Conclusion

Ce projet a permis de configurer une chaîne CI/CD complète pour automatiser le build, le push
et le déploiement d’une application Odoo. Malgré certaines erreurs techniques à résoudre, le
pipeline intègre GitHub, Docker, Jenkins et Kubernetes pour une livraison continue maîtrisée.

Page

Vous aimerez peut-être aussi