Configuration de Jenkins sur Linux et Windows
Cette démonstration présente la mise en place de l'environnement sur les plates-formes Linux et Windows. Pour macOS, cela sera traité ultérieurement.
Comme Jenkins est basé sur Java, son exécution dépend de l'environnement Java JRE (Java Runtime Enviroment). Par conséquent, pour utiliser Jenkins, nous devons avoir :
- Exigences matérielles
- 256 Mo de mémoire, recommandé plus de 512 Mo
- 10 Go d'espace disque (pour Jenkins et les images Docker)
- Logiciels requis
- Java 8 ou version ultérieure
- Docker
Installation du JDK Java
Pour installer le JDK Java sur différentes plateformes, veuillez vous référer à ce guide : Guide d'installation du JDK Java
Téléchargement de Jenkins
Site officiel : https://jenkins.io/zh/
Lien de téléchargement officiel : https://jenkins.io/zh/download/
Liens de téléchargement des logiciels associés
Liens : https://pan.baidu.com/s/1KVGiuH5-diz8OK11C--CFA Code d'extraction : 0ek2
Pour Windows
Téléchargement
- Téléchargez le fichier
msisur votre machine locale et cliquez dessus. - Sélectionnez le répertoire d'installation et continuez en clqiuant sur "Suivant".
- Cliquez sur "Installer".
- L'installation une fois terminée, ouvrira automatiquement votre navigateur pour la page de déverrouillage de Jenkins.
Mise en route
Lorsque l'installation est terminée, votre navigateur s'ouvrira automatiquement sur la page de déverrouillage de Jenkins. Suivez les instructions pour trouver le mot de passe local, puis collez-le dans le champ de saisie et cliquez sur "Continuer".
Sélectionnez le téléchargement des plugins recommandés.
Pendant l'attente parfois longue, divers incidents peuvent se produire. Gardez à l'esprit que : si un incident se produit, rafraîchissez périodiquement votre navigateur, cela résoudra probablement le problème... Si cela ne fonctionne toujours pas, prenez une pause café, réfléchissez à la vie et revenez continuer à rafraîchir... Dans mon cas, deux installations de plugins ont échoué, et j'ai résolu le problème en rafraîchissant.
Si certains plugins échouent à s'installer, cliquez sur "Réessayer".
Création d'un utilisateur administrateur
Configuration de l'instance
Configurez l'adresse IP selon vos besoins. Si vous utilisez un serveur distant, configurez une adresse IP publique ou liez un domaine ; pour une utilisation locale, utilisez simplement localhost.
Accédez à la page d'accueil :
À ce stade, Jenkins est considéré comme installé avec succès.
Pour Linux
Ici, nous choisissons d'installer la version Docker de Jenkins.
Veuillez effectuer les opérations suivantes avec des privilèges d'administrateur
L'environnement est CentOS 7 sur Alibaba Cloud
Installation de Docker
Opération facultative : Vérification de la version du noyau
Actuellement, seule la version du noyau des versions d'émission de CentOS prend en charge Docker.
Docker s'exécute sur CentOS 7, exigeant un système 64 bits et une version de noyau 3.10 ou supérieure.
Docker s'exécute sur CentOS-6.5 ou versions ultérieures, exigeant un système 64 bits et une version de noyau 2.6.32-431 ou supérieure.
uname -a
# Exemple
[root@localhost ~]# uname -a
Linux localhost 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Mise à jour des dépôts Yum
[root@localhost ~]# yum update -y
Opération facultative : Désinstallation de l'ancienne version de Docker
yum remove docker docker-common docker-selinux docker-engine
Installation des dépendances
yum-util fournit la fonction yum-config-manager, et les deux autres sont les dépendances du pilote devicemapper.
yum install -y yum-utils device-mapper-persistent-data lvm2
# Exemple
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
Configuration des dépôts Yum
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# Exemple
[root@bogon ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Requête et installation de Docker
yum list docker-ce --showduplicates | sort -r
# Exemple
[root@bogon ~]# yum list docker-ce --showduplicates | sort -r
Dans la liste des versions, choisissez la version appropriée pour télécharger.
yum install docker-ce-17.12.1.ce -y
# Exemple
[root@bogon ~]# yum install docker-ce-17.12.1.ce -y
Vérification de l'installation réussie
docker version
# Exemple
[root@bogon ~]# docker version
Client:
Version: 17.12.1-ce
API version: 1.35
Go version: go1.9.4
Git commit: 7390fc6
Built: Tue Feb 27 22:15:20 2018
OS/Arch: linux/amd64
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Démarrage de Docker et ajout au démarrage automatique
systemctl start docker # Démarrage
systemctl enable docker # Ajout au démarrage automatique
ps -ef | grep docker # Vérification si Docker est démarré
Installation de Jenkins
Une fois l'environnement Docker configuré, nous pouvons configurer la version Docker de Jenkins.
Choix de la version Docker de Jenkins
Ouvrez la page de téléchargement du site officiel, choisissez la version à long terme (LTS).
Sur la nouvelle page, sélectionnez la commande d'installation de la version LTS.
Copiez et exécutez la commande docker pull jenkins/jenkins:lts dans CentOS.
docker pull jenkins/jenkins:lts
# Exemple
[root@bogon ~]# docker pull jenkins/jenkins:lts
PS : Le téléchargement est un peu lent...
Une fois le téléchargement terminé, utilisons la commande suivante pour vérifier si le téléchargement a réussi.
[root@bogon ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins lts 22b8b9a84dbe 6 days ago 568MB
[root@bogon ~]#
Démarrage de Jenkins
docker run -d -p 80:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins docker.io/jenkins/jenkins:lts
# Exemple
[root@bogon ~]# docker run -d -p 80:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins docker.io/jenkins/jenkins:lts
9f1d7ae974968f7465f98a7fbc25fc8f59cdebae561db33db7916fc68ee0f408
[root@bogon ~]#
Signification des paramètres :
-d: Exécute l'image en arrière-plan.-p 80:8080: Mappe le port8080de l'image au port80du serveur.-p 50000:50000: Mappe le port50000de l'image au port50000du serveur.-v jenkins:/var/jenkins_home:/var/jenkins_homeest le répertoire de travail de Jenkins, nous montons un répertoire du disque dur à cet emplacement pour faciliter la mise à jour ultérieure de l'image tout en utilisant le répertoire de travail d'origine.-v /etc/localtime:/etc/localtime: Permet au conteneur d'utiliser le même paramètre de temps que le serveur.--name jenkins: Attribut un alias au conteneur.docker.io/jenkins/jenkins:lts: Indique que Docker tire la version LTS de Jenkins.
Utilisons maintenant le navigateur local pour accéder à l'IP de CentOS de la machine virtuelle.
Comme nous avons installé la version Docker de Jenkins, nous ne pouvons pas trouver le mot de passe directement à l'emplacement indiqué (la version Windows peut trouver le mot de passe selon les indications). Ce chemin n'est pas le chemin du serveur, mais celui du conteneur Docker, nous devons donc utiliser la commande Docker pour obtenir le mot de passe.
docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword
# Exemple
[root@bogon ~]# docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword
683a4afce37d44a780c287a131e9388b
La chaîne de caractères 683a4afce37d44a780c287a131e9388b ci-dessus est le mot de passe, à entrer dans le champ de saisine de la page précédente.
Note : après avoir saisi le mot de passe, vous entrerez dans la phase de démarrage pour débutants, téléchargement de plugins, etc. Si ce processus échoue, vous devrez peut-être resaisir ce mot de passe, alors mémorisez-le.
Après toutes ces opérations, nous entrons enfin dans la phase de démarrage pour débutants, la première chose qui s'affiche est l'installation des plugins Jenkins. Sans besoins spécifiques, choisissez simplement installer les plugins recommandés.
Attente longue...
Pendant l'attente parfois longue, divers incidents peuvent se produire. Gardez à l'esprit que : si un incident se produit, rafraîchissez périodiquement votre navigateur, cela résoudra probablement le problème... Si cela ne fonctionne toujours pas, prenez une pause café, réfléchissez à la vie et revenez continuer à rafraîchir... Dans mon cas, deux installations de plugins ont échoué, et j'ai résolu le problème en rafraîchissant.
Si certains plugins échouent à s'installer, cliquez sur "Réessayer".
Création d'un utilisateur administrateur
Une fois les plugins ci-dessus installés, vous arriverez sur l'interface de création d'utilisateur administrateur.
Remplissez tous les champs, puis sélectionnez Enregistrer et terminer.
Configuration de l'instance
Configurez l'adresse IP selon vos besoins. Si vous utilisez un serveur distant, configurez une adresse IP publique ou liez un domaine ; pour une utilisation locale, utilisez simplement localhost.
À ce stade, Jenkins est considéré comme installé avec succès.
Accédez à votre espace de travail.
Plus d'informations
Que faire si le téléchargement de Docker est très lent
VMware avec CentOS 7
- Modifiez le fichier de configuration Docker
[root@bogon ~]# vi /lib/systemd/system/docker.service
- Modifiez la valeur
ExecStartpour utiliser Alibaba Cloud.
# ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --registry-mirror=https://u1qbyfsc.mirror.aliyuncs.com
Ainsi, Docker ira beaucoup plus vite pour récupérer les images.
Ouvrir les ports du pare-feu
VMware avec CentOS 7
Si vous utilisez une machine virtuelle ou un serveur distant, il est possible que le pare-feu n'ait pas ouvert les ports, provoquant l'échec de la connexion distante à Jenkins. Voici la solution.
firewall-cmd --list-ports # Vérifiez les ports actuellement ouverts
# Si cette commande affiche
[root@bogon ~]# firewall-cmd --list-ports
FirewallD is not running
# Démarrez-le
[root@bogon ~]# systemctl start firewalld # Démarrage
[root@bogon ~]# firewall-cmd --list-ports # Réexécutez ensuite
Démarrage de Jenkins en ligne de commande
Sous Windows, Jenkins ne crée pas de raccourci. Il faut démarrer via la ligne de commande.
Note : le terminal doit avoir des privilèges d'administrateur
net start jenkins # Démarrage du service
net stop jenkins # Arrêt du service
Ensuite, accédez via le navigateur :
http://localhost:8080
Modification du port
Environnement : Windows
Le port 8080 est souvent utilisé, nous allons donc modifier le port dans le fichier jenkins.xml situé dans le répertoire d'installation de Jenkins.
Erreur lors de l'installation des plugins : Impossible de se connecter à Jenkins
Environnement : CentOS 7 sur Alibaba Cloud
Ce problème est étrange ! Mon environnement est un serveur Alibaba Cloud, j'ai vérifié si Jenkins était démarré, si le réseau était accessible, etc., tout semblait correct.
La solution finale était de rafraîchir le navigateur ! Si cela ne fonctionne pas, essayez plusieurs fois !! Je ne sais pas pourquoi ça a soudainement fonctionné...
Erreur lors de l'installation des plugins : No such plugin: cloudbees-folder
Environnement : Windows
Ce problème est également étrange ! Mon environnement était Windows 10 Enterprise Edition, j'ai vérifié si Jenkins était démarré, si le réseau était accessible, etc., tout semblait correct.
La solution finale était de rafraîchir le navigateur ! Si cela ne fonctionne pas, essayez plusieurs fois !! Je ne sais pas pourquoi ça a soudainement fonctionné... J'ai également changé le port (puis redémarré Jenkins), mais cela n'a probablement pas d'impact.
Commandes pour vérifier le processus Jenkins
ps aux |grep jenkins
Téléchargement de l'image Jenkins
docker pull jenkinsci/blueocean:latest
Informations sur l'image Jenkins
docker images |grep jenkins
Démarrage de Jenkins
docker run \
-u root \
--name s267 \
--restart=always \
-d \
-p 6010:8080 \
-p 50000:50000 \
--env JAVA_OPTS="-Xmx512m" \
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
-v /etc/localtime:/etc/localtime \
-v /tmp/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean:latest
Consultation des 40 dernières informations de journal
docker logs -t -f --tail 40 s267
Accès via le navigateur
http://192.168.1.103:6010/login?from=%2F
Consultation du mot de passe, utilisation unique
[root@r ~]# docker logs -t -f --tail 40 s267
Consultation du mot de passe, méthode recommandée
[root@r ~]# docker exec -it -u root s267 bash
bash-4.4# cat /var/jenkins_home/secrets/initialAdminPassword
a02074d95cd94b2891d241d350a00293
Création d'un élément de tâche
Enregistrez
Cliquez sur la page d'accueil
Cliquez sur Gérer Jenkins
Cliquez sur Gérer les plugins
Mise à jour des plugins, plugins opsionnels, plugins installés, avancé
Téléchargement du plugin Allure
Redémarrage de Jenkins en avant-plan
http://47.52.72.214:6010/restart
Redémarrage de Jenkins via Docker
docker restart s267
Désinstallation de plugins
Téléchargez manuellement le plugin et téléchargez-le manuellement
https://updates.jenkins.io/download/plugins/allure-jenkins-plugin/
Cliquez sur Télécharger
Après installation, redémarrez
Résolution du téléchargement lent des plugins
Gestion des utilisateurs
Configuration de la sécurité globale - autorisation de l'enregistrement des utilisateurs
Gestion des utilisateurs - Création d'un utilisateur
Déploiement d'un projet de style libre
Étapes du flux de travail de style libre
- Général : informations descriptives du projet et paramètres de base
- Gestion du code source : comment gérer votre code, d'où le tirer, comment configurer les informations d'identification.
- Déclencheurs de construction : comment votre projet s'exécute ?
- Exécution unique
- Exécution par rotation
- Chaque semaine, chaque jour, chaque mois
- Environnement de construction : choisissez l'environnement de construction de votre projet, par exemple Ant
- Construction : comment exécuter votre projet, comment exécuter votre code
- Exécution du shell
- Terminal Windows
- .....
- Opérations post-construction : que faire une fois la construction terminée
- Génération de rapports
- Envoi d'e-mails
Configuration des informations d'identification
Configuration globale des informations d'identification
Modification des informations d'identification
Configuration de la clé privée
Déclencheurs de construction par rotation
Exécution une fois par jour à 8h30
Construction initiale
Construire immédiatement
Sortie de la console
On peut voir que le code a été récupéré
Consultation de toutes les images
docker images
Informations de base de l'image de base
cat /etc/issue
Informations de base de la nouvelle image créée
Accès à l'espace interne du nouveau conteneur
docker exec -it tmp bash
Liste de tous les packages
apk info
Informations sur les packages
apk info musl
Installation de vim : apk add vim
Recherche de vim dans les dépôts
apk search vim
Suppression de vim : apk del vim
Mise à jour des dépôts
apk update -y
Installation de Python avec version spécifiée
apk add python3=3.6.9-r2
Vérification de la version Python
python3 -V
Informations sur les versions de Java et Git
Configuration globale des outils - ajout de JDK
Variables d'environnement
echo $PATH
Recherche floue de git
ls /usr/bin/git*
Allure Commandline
Configuration de la commande d'exécution
pip3 install -i https://pypi.doubanio.com/simple -r /var/jenkins_home/workspace/at1/requirements.txt
python3 /var/jenkins_home/workspace/at1/start.py
Résolution des dépendances
apk add gcc
apk add build-base
Mise à jour de pip
pip3 install --upgrade pip
Construction immédiate
Sortie de la console
Configuration de la commande de génération du rapport Allure
Paramétrage du processus de construction - paramètre de texte
Opérations post-construction
Exécution paramétrée
Configuration du courriel - configuration du système
Opération post-construction - envoi d'e-mail
Opérations avancées de messagerie
Configuration du projet en paramètres avancés
Début de la construction
Empaquetage de l'image
docker commit --author zhangda --message "Une image Jenkins basée sur jenkinsci/blueocean:latest avec environnement Python et plugin Allure configurés" s267 s267_jenkins:1.0
Enregistrez à nouveau
docker save -o s267_jenkins:1.0 s267_jenkins:1.0
Téléchargement de l'image et démarrage de Jenkins
docker pull wangzhangkai/jenkins:1.0
docker run \
-u root \
--name myjenkins \
--restart=always \
-d \
-p 6010:8080 \
-p 50000:50000 \
--env JAVA_OPTS="-Xmx1024m" \
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
-v /etc/localtime:/etc/localtime \
-v /tmp/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
wangzhangkai/jenkins:1.0
Consultation de toutes les images
docker images
docker container ls -a # Consultation de toutes les images exécutées
docker container ls # Consultation des images actuellement en cours d'exécution
Importation de l'image empaquetée dans le répertoire racine de CentOS 7
Renommage du fichier
Utilisation de load pour importer dans Docker
Informations sur l'image
docker images | grep temp
Démarrage de l'image
docker run \
-u root \
--name myjenkins \
--restart=always \
-d \
-p 6004:8080 \
-p 50000:50000 \
--env JAVA_OPTS="-Xmx1024m" \
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
-v /etc/localtime:/etc/localtime \
-v /docker_data/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
s267_jenkins:1.0
Solution pour l'accès depuis l'hôte à Jenkins sur CentOS 7
J'ai créé un serveur CentOS 7 sur VM localement, après installation de Jenkins, je peux accéder à la page de gestion Jenkins via IP + port sur le serveur
Lors de l'accès depuis l'hôte, j'ai rencontré des obstacles
Voyons d'abord si l'hôte et VM communiquent
Modifiez le mode réseau de VM en mode NAT
Désactivez le pare-feu sur la machine virtuelle
Commandes associées
Arrêt du pare-feu
systemctl stop firewalld.service
Interdiction du démarrage automatique
systemctl disable firewalld.service