LAB : Configuration Jenkins / Slack pour le partage des informations de build aux équipes#
Présentation#
L'un des piliers fondamentaux du DevOps est la communication. Les parties prenantes devraient être continuellement informés des événements produits par les mécanismes mises en place, en l'occurrence l'hyper-automatisation des processus.
Slack est un outil collaboratif facilitant la communication entre acteurs par échange directe ou via des canaux regroupant plusieurs utilisateurs. Il dispose d'une multitude de plugins facilitant son intégration avec la plupart des outils de l'écosystème DevOps.
Dans le cadre de ce lab, nous allons intégrer Slack avec Jenkins pour afficher dans un canal dédié les résultats des builds.
Objectifs:#
- Découverte de slack
- Integration de Slack avec Jenkins
- Création d'un pipeline basique incluant une notification slack
Prérequis#
- Connaissance de Docker
- Instance docker fonctionnel
- Editeur de code
- Utilitaire installé sur la machine: git
- Avoir une instance jenkins fonctionnel sinon voir le lab sur la mise en place de Jenkins
Déroulement du Lab#
Etape 1 : Creation d'un compte slack#
-
Accéder à l'url https://slack.com/intl/fr-fr/get-started#/createnew
-
Rentrer votre adresse email puis cliquer sur
Continuer

- Récupérer le code reçu via email et coller la zone de saisie du code (vérifiez vos spams si vous ne voyez pas le code)

- Créer un espace de travail pour commencer en cliquant sur
Créer un espace de travail

- Donner un nom à votre equipe ou organization (le nom doit être unique) puis cliquer sur
Suivant

- Ajouter un nom et votre photo au besoin puis cliquer sur
Suivant

- Ajouter directement vos collègues à cette étape ou le faire plus tard. Cliquer sur
Ignorer cette étape

- Valider le popup de configuration en cliquant sur
Passer cette étape

- Indiquer sur quoi travaille votre équipe, pour notre cas
Training DevOps. Cele permettra de créer un canal par défaut nommétraining-devops

- Cliquer sur
Commencer avec le forfait gratuitpour continuer

- Votre espace slack va ressembler à l'image suivante

Etape 2 : Creation d'un canal pour les build jenkins#
- Ajouter un nouveau canal reservé aux builds jenkins sur Slack en cliquant sur
Ajouter des canauxpuis surcréer un nouveau canal

- Indiquer le nom du canal par exemple
jenkins-lcf

- Ignorer les invitations en cliquant sur
Ignorer pour l'instant

- Choisir la visibilité privée puis
créer
Etape 3 : Ajout de l'application Jenkins à Slack#
- Sur l'interface d'accueil de Slack, Cliquer sur
... Pluspuis sur "Automatisation"

- Cliquer sur le sous menu
Applications

- Rechercher Jenkins sur la barre de recherche et cliquer sur
Ajouter

-
Un nouvel onglet sera ouvert. Cliquer sur
Ajouter à Slack -
Choisir le canal
jenkins-lcfpuis cliquer surAjouter l'intégration Jenkins CI

Une page contenant tous les détails d'intégration vous sera affichée. Vous y trouverez 2 paramètres essentiels à garder soigneusement: Sous-domaine de l’équipe et Identifiant d’authentification du jeton d’intégration

Etape 4: Installation et configuration du plugins Slack sur Jenkins#
- Sur la page d'accueil de Jenkins, cliquer sur
Administer Jenkinspuis sur plugins

- Cliquer sur plugins disponible, rechercher
Slack Notification, cocher la ligne coresspondante puis cliquer surInstaller

- Le plugin est bien installé. Cliquer sur
Administer Jenkins

- Cliquer sur
System

- Rechercher la section
Slack
Renseigner les informations suivantes:
() Juste en dessous Credential* cliquer sur Ajouter puis Jenkins
--> Sur Type selectionner secret-text
--> Dans Secret, indiquer l'identifiant d’authentification du jeton d’intégration
--> Dans ID et Description, mettre slack-token
--> cliquer sur Ajouter

() Workspace*: Le nom de votre espace de travail. Vous pouvez le retrouver sur votre url SLACK qui est de la forme https://lecloudfacile
() Credential*, selectionner le credential slack-token**
(*) Cliquer sur Tester Connection, normalement vous verrez success affiché

- Scroller en bas de page puis cliquer sur
Save
Etape 5: Création d'un pipeline de test#
- Créer un nouveau pipeline avec le code suivant:
pipeline {
agent any
stages {
stage('Hello') {
steps {
sh 'docker ps'
}
}
}
post {
always {
//Add channel name
slackSend channel: "jenkins-lcf",
message: "Find Status of Pipeline:- ${currentBuild.currentResult} ${env.JOB_NAME} ${env.BUILD_NUMBER} ${env.BUILD_URL}"
}
}
}
La méthode slackSend permet d'envoyer des notifications sur Slack. Pour plus de détails, consulter la documentation
Après execution, vous allez recevoir une notification dans le canal slack.
