Last active
November 12, 2017 22:15
-
-
Save yogeek/06f9ca3ce3d9cf33e002b8a10641908d to your computer and use it in GitHub Desktop.
Jenkins
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Démarrer un serveur Jenkins avec Docker : | |
docker run -d -p 8888:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkinsci/blueocean:latest | |
docker run -d -p 8888:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock --privileged jenkinsci/blueocean:latest | |
Note : Les données seront persistées dans le volume "jenkins_home" | |
○ Accéder à http://localhost:8888 et entrer le mot de passe admin indiqué dans les logs de démarrage du serveur | |
○ Sélectionner les plugins souhaités | |
- Configurer les accès dans le menu "Credentials" de l'interface de Jenkins : | |
- Créer un magasin | |
- Ajouter un credential de type "Username with private key" | |
§ Username = Phabricator username | |
§ Private key > Enter directly | |
□ copier la clé privée du l'utilisateur (habituellement située dans ~/.ssh/id_rsa ou un fichier équivalent sur une machine ayant déjà accéder à GIT) | |
□ Cette clé privée doit correspondre à une des clés publiques que l'utilisateur a ajouté dans Phabricator | |
- Tester : | |
- New Item > Free Style Project | |
§ Name = TestProject | |
§ Source management | |
□ Git : choisir l'URL du repository et le credential précédemment créé | |
§ Build step | |
□ Ajouter un step (ex: choisir "script shell" et renseigner le contenu du script "echo Mon premier job Jenkins !") | |
§ Save | |
- Lancer un build sur le job "TestProject" | |
****************************************** | |
Utiliser "DooD" 'Docker outside of Docker" at Jenkins Docker Slaves Plugin to execute jobs inside Docker container slaves : | |
****************************************** | |
========================================= | |
FROM jenkins/jenkins:lts | |
USER root | |
#TODO the group ID for docker group on my docker-machine is 100 | |
# therefore I can only run docker commands if I have same group id inside. | |
# Otherwise the socket file is not accessible. | |
RUN groupdel users && groupadd -g 100 docker && usermod -a -G docker jenkins | |
USER jenkins | |
========================================== | |
docker build -t jenkinsdood . | |
docker run --rm -it \ | |
-v /var/run/docker.sock:/var/run/docker.sock \ | |
-v $(which docker):/usr/bin/docker \ | |
-v jenkins-stuff:/var/jenkins_home \ | |
-v $(pwd):/var/jenkins_data \ | |
-p 8080:8080 -p 50000:50000 \ | |
jenkinsdood | |
Installer Docker Slaves Plugin,le configurer pour utiliser l'image "jenkinsci/slave" pour les slaves | |
Créer un Job : | |
- Cocher "Run the build inside Docker containers" | |
- Main build container "Docker image" | |
- Choose a Docker image (e.g. python) | |
- Configurer un script de biuld. e.g : | |
echo "In a docker container !" | |
python -V | |
Launch job ! :D | |
Créer une pipeline supportant Docker : | |
pipeline { | |
agent { | |
docker { image 'node:7-alpine' } | |
} | |
stages { | |
stage('Test') { | |
steps { | |
sh 'node --version' | |
} | |
} | |
} | |
} | |
##################################### | |
Get plugins list from existing server | |
##################################### | |
JENKINS_HOST=username:[email protected]:port | |
curl -sSL "http://$JENKINS_HOST/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins" | perl -pe 's/.*?<shortName>([\w-]+).*?<version>([^<]+)()(<\/\w+>)+/\1 \2\n/g'|sed 's/ /:/' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment