GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer Jenkins sur CentOS et le connecter à GitHub

Jenkins fournit des outils CI/CD open source largement utilisés. Dans cet article, nous allons apprendre à installer Jenkins et à le configurer avec Github pour envoyer des fichiers au serveur en utilisant SSH.

Installation de Jenkins :

Jenkins est une application basée sur JAVA, donc tout d'abord, nous devons installer JAVA. La commande suivante installera JAVA sur centos 7.

sudo yum install java-1.8.0-openjdk-devel

Vérifier la version Java

[[email protected] ~]# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

Configurez maintenant le référentiel Jenkins à l'aide des commandes suivantes.

curl --silent --location http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo | sudo tee /etc/yum.repos.d/jenkins.repo

Cela affichera les sorties suivantes.

[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat-stable
gpgcheck=1

Exécutez ensuite la commande suivante pour ajouter la clé Jenkins.

sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

Nous avons maintenant configuré le référentiel Jenkins et nous sommes prêts à installer Jenkins à l'aide des commandes simples suivantes.

sudo yum install jenkins

Une fois l'installation terminée, vérifiez le service Jenkins et activez-le au redémarrage du système.

sudo systemctl start Jenkins
sudo systemctl enable jenkins

Maintenant, redémarrez le système et assurez-vous que le service Jenkins fonctionne à l'aide de la commande suivante.

sudo systemctl enable jenkins

Autorisez maintenant Jenkins dans le pare-feu.

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

Configurer les paramètres :

Nous ne pouvons pas utiliser Jenkins directement, nous devons taper le nom de domaine ou l'adresse IP dans le navigateur Web suivi du numéro de port par défaut de Jenkins 8080.

Dans la capture d'écran ci-dessus, nous devons saisir le mot de passe généré automatiquement par Jenkins une seule fois. Exécutez la commande suivante pour obtenir un mot de passe.

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

Cela donnera une sortie comme 2179c452db3b45f98cf9e4c4961ab635

Après le mot de passe, nous devons installer des plugins sur le système Jenkins. Pour cela, sélectionnez simplement le plugin suggéré installé pour installer tous les plugins par défaut.

Remplissez tous les détails et cliquez sur enregistrer et continuer.

Maintenant, il demandera la configuration de l'instance, où nous pouvons également modifier le numéro de port par défaut.

Maintenant, notre Jenkins est sauvegardé et prêt à l'emploi.

Félicitations, la nouvelle configuration de Jenkins est terminée avec succès et prête à l'emploi.

La capture d'écran suivante montre le tableau de bord par défaut pour Jenkins.

Configuration Jenkins :

Installer les plugins :

Avant de passer aux étapes suivantes, assurez-vous d'installer les plugins suivants.

Allez dans Gérer Jenkins -> Gérer le plugin -> Disponible -> filtrer -> recherchez le plugin suivant qui est nécessaire pour l'intégration avec GitHub.

Publier sur SSH
Git
Plug-in GitHub
Plug-in client Git

Ici, le plugin Publish Over SSH avait besoin de pousser nos fichiers vers le serveur via SSH.

Ajouter des identifiants :

Nous devons ajouter les informations d'identification du serveur dans Jenkins.

Accédez au tableau de bord Jenkins → informations d'identification → système → informations d'identification globales (illimitées) → Ajouter des informations d'identification

Nous pouvons sélectionner le type d'identifiants que nous voulons installer. Ici, nous ajoutons le nom d'utilisateur et le mot de passe des informations d'identification GitHub pour une utilisation ultérieure.

ssh sur le serveur Jenkins.

Jenkins peut se connecter à un serveur distant à l'aide de ssh et capable d'exécuter un script, une commande ou de copier un fichier d'un serveur à un autre.

Pour cela, nous devons créer une connexion ssh entre le serveur Jenkins et le serveur distant.

L'étape suivante ajoute les informations d'identification SSH sur Jenkins que nous voulons connecter au serveur Jenkins.

Nous voulons nous connecter à un serveur Web de Jenkins avec l'utilisateur root. Par exemple, notre serveur Web est 138.197.151.144 et l'utilisateur root, nous devons donc nous connecter à ce serveur en utilisant ssh.

ssh [email protected]

Allez maintenant dans le répertoire personnel et cd dans le dossier .ssh.

cd ~/.ssh

La prochaine étape consistera à générer une clé privée et une clé publique pour l'utilisateur root sur notre serveur Web.

ssh-keygen -t rsa -f private_key_for_jenkins

Après avoir exécuté la commande ci-dessus, il vous sera demandé "Entrez la phrase secrète", nous n'avons pas besoin de saisir la phrase secrète. Cliquez donc deux fois sur Entrée et cela générera deux clés sur le serveur Web private_key_for_jenkins et private_key_for_jenkins.pub.

Ici private_key_for_jenkins est la clé privée de 138.197.151.144 et nous devons utiliser le contenu de ce fichier dans notre serveur Jenkins.

Nous avons le deuxième fichier appelé private_key_for_jenkins.pub qui est la clé publique du serveur Web. Nous devons copier ses données dans un autre fichier appelé authorised_keys situé dans le même répertoire.

Dans la plupart des cas, les fichiers authorised_keys sont présents dans le dossier ~/.ssh/ mais parfois il manque et nous devons générer de nouveaux fichiers authorised_keys. Exécutez simplement la commande suivante pour la copier dans les clés autorisées, cette commande génère également de nouvelles clés autorisées si elles sont disponibles.

cat private_key_for_jenkins.pub > authorized_keys

Connectez-vous maintenant au serveur Jenkins, puis accédez à Gérer Jenkins -> Configurer les systèmes

Une alternative que nous pouvons directement écrire http://ip_address:8080/configure dans le navigateur Web, cela ouvrira Configurer les systèmes pour les configurations ssh.

Maintenant, recherchez la section Serveur des serveurs SSH dans "Configurer Jenkins". Veuillez noter que cette section n'est disponible que si nous avons installé 'SSH Credential Plugin' sur le serveur Jenkins.

Accédez à la section Publier via SSH, accédez à la clé et collez le contenu de private_key_for_jenkins

Maintenant, dans l'option Serveurs SSH, cliquez sur le bouton Ajouter et entrez les détails du serveur SSH. Nous pouvons modifier le port ssh et d'autres paramètres à partir de l'option avancée.

Après avoir apporté les modifications, cliquez sur "Tester la configuration" et nous devrions recevoir un message de réussite comme indiqué dans la capture d'écran ci-dessus si tous les paramètres sont corrects.

Veuillez noter que nous pouvons ajouter plusieurs serveurs conformément à notre exigence de publication du même code sur plusieurs serveurs à l'aide de ssh.

Pour cela, nous devons générer la clé privée pour chaque serveur comme nous l'avons mentionné précédemment et nous devons ajouter leur clé privée au serveur Jenkins.

Enfin, cliquez sur le bouton "Enregistrer" et enregistrez nos modifications. Nous avons créé avec succès une connexion ssh vers un serveur distant. Nous pouvons maintenant envoyer le fichier au serveur distant et exécuter n'importe quelle commande ou script sur ce serveur.

Configuration de Jenkins avec Github

Pour l'automatisation des builds déclenchés par les requêtes PUSH et PULL, un WebHook Jenkins doit être ajouté à chaque référentiel GitHub ou webhooks d'organisation.

Étapes pour configurer le webhook à partir du référentiel Github.

1. Connectez-vous à vos comptes GitHub

2. Cliquez sur le référentiel sur lequel nous devons définir le webhook

3. accédez à l'option des paramètres pour ce référentiel

4. Cliquez sur Webhooks et ajoutez l'URL de charge utile, cela ressemble à http://jenkins_ip:8080/github-webhook/

5. Sélectionnez "application/json" comme type d'encodage dans Type de contenu

6. Laissez "Secret" vide (sauf si un secret a été créé et configuré dans la section Jenkins "Configure System -> GitHub plugin")

7. Sélectionnez "Laissez-moi sélectionner des événements individuels"

8. Activer l'événement PUSH et Pull Request

9. Assurez-vous que "Actif" est coché

10. Cliquez enfin sur le bouton "Ajouter un Webhook".

Vérifiez la capture d'écran ci-dessous pour plus de détails.

Jenkins recevra désormais des notifications de demande push et pull pour ce référentiel et les builds associés seront automatiquement déclenchés.

Création du premier emploi sur Jenkins

Accédez maintenant à notre tableau de bord Jenkins, sélectionnez Nouvel élément puis saisissez un nom d'élément sélectionnez Projet Freestyle .

Après avoir cliqué sur ok, vous serez redirigé vers la section de configuration.

Nous sommes actuellement dans l'onglet général, comme indiqué dans la capture d'écran ci-dessous. En général, l'onglet donne la description du projet et cliquez sur Projet Github, Entrez ici notre URL GitHub pour le projet.

Allez maintenant dans la gestion du code source, puis cliquez sur Git et entrez l'URL de notre référentiel à partir duquel nous voulons prendre les codes.

Nous ajoutons déjà les informations d'identification GitHub, cliquez sur le menu déroulant et sélectionnez le nom d'utilisateur et le mot de passe GitHub.

Ensuite, allez dans Branches pour créer et sélectionnez */master branch, nous pouvons ajouter n'importe quelle branche selon les exigences de notre projet.

Maintenant, allez dans l'onglet Build Trigger et sélectionnez Github hook trigger pour l'option d'interrogation GITScm. Cela se construira automatiquement
lorsque nous apporterons des modifications au référentiel GitHub.

Allez maintenant dans l'environnement de construction et sélectionnez Envoyer des fichiers ou exécuter des commandes via SSH après l'exécution de la construction.

Cela enverra les fichiers au serveur distant après l'exécution de la construction.

Goto SSH Publishers --> SSH Server --> sélectionnez le nom du serveur dans le menu déroulant

Ici, nous pouvons également définir les paramètres avancés, mais actuellement, nous utilisons les paramètres de base.

Nous devons maintenant ajouter le type de fichier que nous voulons copier via ssh. Ici, nous sélectionnons tous les dossiers et fichiers de notre référentiel GitHub. Pour ajouter des fichiers et sélectionner un dossier, ajoutez simplement **/* dans les fichiers source.

De la même manière, nous pouvons donner n'importe quelle commande dans la zone de texte de la commande Exec, qui sera exécutée sur notre serveur distant.

Spécifiez ensuite le répertoire distant dans lequel nous devons copier nos fichiers. Ceci est une option facultative.

Éditeurs SSH --> Transferts --> Ensemble de transferts --> Fichiers sources --> ajouter **/*

Éditeurs SSH --> Transferts --> Ensemble de transferts --> Répertoire distant --> /jenkins-test

Éditeurs SSH --> Transferts --> Ensemble de transferts --> Commande Exec --> Commande

Par défaut, Jenkins exclura certains fichiers comme .git .svn .gitignore etc. Ici, nous voulons copier tous les fichiers sur le serveur distant. Pour cela, cliquez sur le bouton Avancé juste en dessous de la commande Exec et cochez l'option "Aucune exclusion par défaut".

Voilà, nous avons de nombreuses options dans les actions post-build que nous pouvons utiliser en fonction des besoins de notre projet.

Test de compilation

Il est temps de tester notre configuration.

Accédez au tableau de bord Jenkins, puis cliquez sur notre projet Jenkins-test.

Cliquez ensuite sur l'option Construire maintenant pour la construction. Si le processus de construction a échoué, le numéro de version de la construction s'affichera avec une icône jaune.

Vérifions notre processus de construction, cliquez simplement sur le numéro de build comme indiqué dans la capture d'écran.

Cliquez maintenant sur Sortie de la console. Ici, nous pouvons voir chaque processus en mode verbeux.

Enfin, nous verrons "Terminé :SUCCÈS" ligne à la fin de la sortie de la console.

Toutes nos félicitations! notre Jenkins est maintenant intégré avec succès à GitHub et prêt à l'emploi.


Cent OS
  1. Comment installer et configurer Nginx sur CentOS 7

  2. Comment installer dig sur CentOS 7 et 8

  3. Comment installer Node.js et NPM sur CentOS 7

  4. Comment installer Jenkins sur CentOS 7

  5. Comment installer Node.js et NPM sur CentOS

Comment installer et configurer Samba sur CentOS 8

Comment installer et utiliser Terraform sur CentOS 8

Comment installer Jenkins sur CentOS 8 / RHEL 8 et CentOS 7 / RHEL 7

Comment installer et configurer Jenkins sur CentOS 8 / RHEL 8

Comment installer et configurer Jenkins dans Rocky Linux/Centos 8

Comment installer Jenkins sur CentOS 7 ?