JenkinsFile exécute un script shell

JenkinsFile exécute un script shell
Lorsque vous ne faites que commencer avec Jenkins, vous pouvez vous rendre compte que vous devez invoquer l'étape SH, BAT ou PowerShell pour exécuter les commandes de Shell sur votre contrôleur.

Bien que cela puisse être utile lorsque vous travaillez avec quelques commandes, cela peut rapidement devenir fatigant et difficile à gérer lorsque vous travaillez avec plusieurs commandes ou copies du même pipeline Jenkins.

Dans ce tutoriel, nous apprendrons à éliminer un tel problème en ajoutant nos commandes dans un script shell, que ce soit un script PowerShell ou un script bash. Nous allons ensuite discuter de la façon dont nous pouvons dire à Jenkins de charger le script shell et d'exécuter les commandes définies dans le fichier.

Exigences

Pour ce tutoriel, nous utilisons ce qui suit:

  1. Un contrôleur Jenkins qui s'exécute sous Windows.
  2. Un agent de Jenkins étiqueté «Debian» qui fonctionne sur Debian 11.

Étape 1: Préparez votre script de shell

La première étape consiste à vous assurer que votre script shell est prêt sur l'agent Jenkins. Ensuite, nous créons un script de shell simple pour ce tutoriel sur l'agent Debian 11.

Connectez-vous dans votre agent Jenkins:

$ ssh debian @ 172.23.177.251

Une fois connecté, nous devons créer un script shell que nous souhaitons utiliser dans notre pipeline Jenkins.

$ CD / Home / Debian
$ touch myscript.shot

Modifiez le script shell et ajoutez la fonction de votre script shell. Pour ce tutoriel, nous obtenons la liste des fichiers et répertoires à l'aide de awk.

$ vim myscript.shot

Nous pouvons ensuite ajouter le script comme indiqué dans ce qui suit:

#!/ bac / bash
ls -la | awk 'print $ 9'

Le script précédent est un script simple qui appelle la commande LS -LA et passe la sortie à awk. Awk imprime alors la valeur à la position spécifiée.

L'étape suivante consiste à s'assurer que le shell a exécuté des autorisations. Nous pouvons le faire en exécutant la commande CHMOD suivante:

$ chmod + x myscript.shot

Avant d'exécuter le script sur le pipeline Jenkins, vous pouvez exécuter le script sur la machine locale pour vous assurer que le script fonctionne comme prévu.

Étape 2: Configuration d'un travail Jenkins

Une fois que nous aurons terminé, revenons au contrôleur Jenkins et configurons un travail qui utilise le script défini.

Sélectionnez «nouvel élément» sur le tableau de bord Jenkins pour créer un nouveau travail. Donnez un nom au travail et sélectionnez le type de travail comme «pipeline».

Accédez à la section du pipeline et ajoutez un script de pipeline comme indiqué dans les éléments suivants:

pipeline
agent label 'debian'
étapes
étape ('Exécuter le script')
pas
sh '/ home / debian / myscript.sh '



Cliquez sur «Enregistrer» pour appliquer le script et sélectionnez «Build maintenant» dans le volet gauche pour permettre à Jenkins de créer le travail.

Sur le numéro de construction, sélectionnez la sortie de la console pour voir le processus de construction pour le travail invoqué.

Conclusion

Vous avez maintenant réussi à invoquer un script shell d'un pipeline Jenkins en quelques étapes.