Skip to content

Latest commit

 

History

History
121 lines (80 loc) · 6.13 KB

File metadata and controls

121 lines (80 loc) · 6.13 KB

Shell et Jenkins-
Premier Job via UI Jenkins \

#!/bin/bash
git clone https://github.com/borelsaffo/alpinehelloworld.git
cd alpinehelloworld
docker build -t ${IMAGE_NAME}:${IMAGE_TAG} .

image image image image le job recupère un projet sur Github et cree une image docker image comme action a la fin du build: ici on suprime le working directory. l'image builder, contruite peut etre publier dans un registry distant ou local. image

resultat build :

image image Image docker contruite discponible dans le host le container Jenkins docker exec -ti id-container-jenkins /bin/bash image

NB : sachant bien que Jenkins est un outil de CI, pour builder un projet, cela est fait par defaut dans un repertoire si vous créer un job ou un projet que vous appelez : Build, un dossier build sera créer dans le repertoire de travail de l'outil Jenkins Le répertoire de travail (/var/jenkins_home/workspace/build). Vous pouvez par exemple lors de la construction de votre job demandé a Jinkins de suprimer le remertoire de travail a la fin de l'exécution du job. ainsi à chaque fois que le job sera exécuté, jenkins se chargera également de suprimé le dossier du job a la fin de l'exécution du job. image

image

Dans le job ci-dessous, après le build, on a une image docker, on contruit un container avec l'image builder comme il s'agit d'une application web qu'on a packager dans une image Docker, on peut installer le pluging jenkin :"http_request' pour faire des tests. https://plugins.jenkins.io/http_request installer un pluging dans jenkins pour faire du http

Deuxième job via UI Jenkins ========

#!/bin/bash
git clone https://github.com/borelsaffo/alpinehelloworld.git
cd alpinehelloworld \ docker build -t ${IMAGE_NAME}:${IMAGE_TAG} .
docker run -d -p 80:5000 -e PORT=5000 --name ${IMAGE_NAME} ${IMAGE_NAME}:${IMAGE_TAG}

#!/bin/bash
curl http://192.168.56.10 | grep -q "helloworld"
docker stop ${IMAGE_NAME}
docker rm ${IMAGE_NAME}

#!/bin/bash
docker stop ${IMAGE_NAME}
docker rm ${IMAGE_NAME} \

image image image image

Dans se job l'idée est de builder une image, de la tagger directement lors du build puis de l'utilisé pour construire un container. cette image est tagger en fonction du registry ou du repos dans lequel on pourrais envissagé la placer

#!/bin/bash
cd alpinehelloworld
docker build -t 199883/borelsaffo/${IMAGE_NAME}:${IMAGE_TAG} .
docker run -d -p 80:5000 -e PORT=5000 --name ${IMAGE_NAME} 199883/borelsaffo/${IMAGE_NAME}:${IMAGE_TAG}
sleep 5

image avant le build : supression workspace si existant image après build : on peut également suprimé le workspace, ceci est une startégie a discuter en équipe image variables image image image on peut aussi définir des proxy en varaible

Le plugin docker-build-step plugins gérer artefact

#!/bin/bash
cd alpinehelloworld
docker build -t 199883/borelsaffo:${IMAGE_NAME}-${IMAGE_TAG} .-
docker run -d -p 80:5000 -e PORT=5000 --name ${IMAGE_NAME} 199883/borelsaffo:${IMAGE_NAME}-${IMAGE_TAG}
sleep 5

====== Creer un compte sur https://heroku.com pour la partie run ou déploy == = == = == = = == = = = == = = = = = = = == = == == == = = = = = =

installer plugins "github integration" pour géré la parte webhook afin que le pipeline soit executer a chaque modification de code présent dans Github. Ici le scénario est telle que le code source du projet soit situé dans un repo Github.

le plugins : "role-basedauthorization strategy" permet de géré les utilisateurs et donc de leurs associer des role pour definir ce a quoi il ont accès.

Le plugin : "docker pipeline" très important :

Bonjour s'il te plait peut tu ouvrire un jinkinsfile. parlant du plugin '' docker pipeline'' J'ai eu des soucis lorsque j'ai essayer d'exécuter des playbook ansible dans mon jenkinsfile tel que définit dans le scénario de X, la partie authentification en SSH n'est pas tout a fais claire pour moi.

solution: https://plugins.jenkins.io/configuration-as-code/