Blogs intéressants
Blog d'Omid Ameri : Dédié à la virtualisation et au système.
Sponsor

PostHeaderIcon Monitoring | Superviser vos jobs rundeck

Article publiée le 6 Septembre 2017

I) Configuration de Rundeck

Suites aux précédents tutos sur rundeck: https://journaldunadminlinux.fr/tuto-installez-et-configurez-rundeck-ordonnanceur-opensource/ et https://journaldunadminlinux.fr/tuto-sauvegardez-vos-instances-rundeck/, je continue dans ma lancée en vous fournissant un petit script (très simpliste) vous permettant de monitorer vos jobs via un outil de supervision (zabbix, nagios, etc…)

Dans un premier temps, il est nécessaire de désactiver le délai d’expiration du token permettant de taper sur l’API de rundeck:

  • Éditez le fichier /etc/rundeck/rundeck-config.properties et ajoutez la ligne suivante:

rundeck.api.tokens.duration.max=0

  • Redémarrez Rundeck

service rundeckd restart

Authentifiez vous  avec un compte admin et cliquez sur le bouton « profil » en haut à droite de la page:

 

Créez ensuite un nouveau token en laissant à 0 le champs « Expiration in ».

II) Script

Ci-dessous le script qui vous permettra de renvoyer un code erreur de votre job à votre outil de supervision en fonction de son statuts:

#!/bin/bash
URL= »<URL de votre instance RUNDECK »
TOKEN= »<le token généré> »
FLUX=$2
PROJECT=$1

 

function getLastStatus {
curl -s -H « Accept: application/json » -X GET « $URL/api/20/project/$PROJECT/executions?authtoken=$TOKEN »|jq ‘.|[ .executions[]|select(.job.name|contains(« ‘ »$FLUX »‘ »))]|sort_by(.id)|reverse |.[0]|.status’|sed ‘s/ »//g’
}

 

# get the token for quering automic
# get the last status of $1
STATUS=$(getLastStatus)

case « $STATUS » in
‘aborted’)
echo -1
;;
‘failed’)
echo -1
;;
‘succeeded’)
echo 0
;;
*) echo 0
esac
exit 0

Pour tester il vous suffit de lancer ce script avec de bons arguments:

./checkJobRundeck.sh <nom du projet rundeck> <nom du job>

 

Il ne vous reste plus qu’à paramétrer votre outil de supervision.

image_print

Une réponse à to “Monitoring | Superviser vos jobs rundeck”

  • Valenitn says:

    Très intéressant,

    Pour ma part, lorsque ma CI par exemple lance un job Rundeck via l’API, je fais un boucle for qui check le status du Job jusqu’à qu’il soit Success (ou Failed).

    En tout cas Rundeck est un super outil !

Laisser un commentaire