Add a script to check Jenkins plugins updates

This commit is contained in:
Jeremy Gardais 2018-04-26 16:39:31 +02:00
parent 5e4ece1e7a
commit bf4cc41b3d
2 changed files with 52 additions and 0 deletions

View File

@ -8,6 +8,7 @@
* [Fiber Channel](#fiber_channel)
* [Grav](#grav)
* [Sesame2mail](#sesame2mail)
* [Jenkins](#jenkins)
* [WordPress](#wordpress)
@ -79,6 +80,18 @@ The first argument can be:
* A file with a list of user ID (sesame), one per line.
* A user ID (sesame), only one.
### Jenkins
#### jenkins_check_update
A daily cron to check [Jenkins][jenkins website]'s plugins updates.
* It need [jenkins-cli.jar][jenkins cli].
* If an update is available, it will create an empty file (${JENKINS_HOME}/.update_plugin), else it will ensure the "update" file is absent.
* Be sure to monitore if this file **${JENKINS_HOME}/.update_plugin** exist!
[jenkins website]: https://jenkins.io/
[jenkins cli]: https://jenkins.io/doc/book/managing/cli/#downloading-the-client
### WordPress
#### wordpress_cron

39
jenkins_check_update Executable file
View File

@ -0,0 +1,39 @@
#!/bin/sh
# This script do the following:
# Use jenkins-cli.jar
# Verify if an update is available for Jenkins plugins.
# Create a file you need to monitore.
#
# How-to use it?
# Run it with `jenkins_check_update
# Add a symlink to /etc/cron.daily
# ln -s $(pwd)/jenkins_check_update /etc/cron.daily/
JENKINS_HOME="/var/lib/jenkins"
JENKINS_CLI_JAR="${JENKINS_HOME}/war/WEB-INF/jenkins-cli.jar"
JENKINS_AUTH_FILE="/root/.jenkins.auth"
JENKINS_PLUGIN_UPDATE_LOG="${JENKINS_HOME}/.update_plugin"
if [ ! -f "${JENKINS_CLI_JAR}" ]; then
printf '%b\n' "Jenkins-cli (${JENKINS_CLI_JAR}) does not seem to be available."
exit 1
fi
if [ ! -f "${JENKINS_AUTH_FILE}" ]; then
printf '%b\n' "Jenkins authentication file (${JENKINS_AUTH_FILE}) does not seem to be available."
exit 1
fi
# Verify if updates are availables for plugins
if java -jar "${JENKINS_CLI_JAR}" -s http://127.0.0.1:8080 -auth @.jenkins.auth list-plugins | grep -i -q -- "(.*)$"
then
touch "${JENKINS_PLUGIN_UPDATE_LOG}"
#printf '%b\n' "Please upgrade plugins"
else
rm -f "${JENKINS_PLUGIN_UPDATE_LOG}"
#printf '%b\n' "Nothing to do"
fi
exit 0