You could setup a job which runs periodically on jenkins master.
Solution 1 ssh
# prepare info file
INFO_FILE=plugins.update.info
# CleanUp
rm -f *
touch $INFO_FILE
# get current version of cli JAR
wget http://127.0.0.1:8080/jnlpJars/jenkins-cli.jar
# update plugins
java -jar jenkins-cli.jar -ssh -user automationuser -i
~/.ssh/automationuser/id_rsa list-plugins | grep ')$' >> ./report_raw ||
true
# format report-file
cat ./report_raw | sed s/' '/'\t'/g >> ./report
# prepare update list
UPDATE_LIST=$( java -jar jenkins-cli.jar -ssh -user username -i
~/path/to/id_rsa list-plugins | grep ')$' | cut -f 1 -d ' ' | sed
':a;N;$!ba;s/\n/ /g' );
# update and create report
echo $UPDATE_LIST
if [ ! -z "${UPDATE_LIST}" ]; then
java -jar jenkins-cli.jar -ssh -user username -i ~/path/to/id_rsa
install-plugin ${UPDATE_LIST};
java -jar jenkins-cli.jar -ssh -user username -i ~/path/to/id_rsa
safe-restart;
echo '<h2>Jenkins Plug-ins Update Report</h2>' >> $INFO_FILE
echo 'The following plug-in updates have been conducted:' >> $INFO_FILE
echo '<table>' >> $INFO_FILE
echo '<tr><th align='left' style='padding-right:20px'>Plug-in
ID</th><th align='left' style='padding-right:20px'>Plug-in name</th><th
align='left' style='padding-right:20px'>Old Version</th><th align='left'
style='padding-right:20px'>New Version</th><tr>' >> $INFO_FILE
awk 'BEGIN { FS = "[()\t]+" } ;{print "<tr><td align='left'
style='padding-right:20px'>"$1"</td><td align='left'
style='padding-right:20px'>"$2"</td><td align='left'
style='padding-right:20px'>"$3"</td><td align='left'
style='padding-right:20px'>"$4"</td></tr>"}' report >> $INFO_FILE
echo '</table>' >> $INFO_FILE
else
echo '<h2>Jenkins Plug-ins Update Report</h2>' >> $INFO_FILE
echo '<p><b>No updates</b> for installed plug-ins were available!</p>'
fi
Solution 2 token
# prepare info file
INFO_FILE=plugins.update.info
rm -f $INFO_FILE
# get current version of cli JAR
rm -f jenkins-cli.jar
wget http://127.0.0.1:8080/jnlpJars/jenkins-cli.jar
# update plugins
rm -f ./tmp
rm -f ./tmp2
java -jar jenkins-cli.jar -auth username:token -s http://127.0.0.1:8080/
list-plugins | grep ')$' >> ./tmp | cat ./tmp | sed s/' '/'\t'/g >> ./tmp2
UPDATE_LIST=$( java -jar jenkins-cli.jar -auth username:token -s
http://127.0.0.1:8080/ list-plugins | grep ')$' | cut -f 1 -d ' ' | sed
':a;N;$!ba;s/\n/ /g' );
if [ ! -z "${UPDATE_LIST}" ]; then
java -jar jenkins-cli.jar -auth username:token -s
http://127.0.0.1:8080/ install-plugin ${UPDATE_LIST};
java -jar jenkins-cli.jar -auth username:token -s
http://127.0.0.1:8080/ safe-restart;
echo '<h2>Jenkins Plug-ins Update Report</h2>' >> $INFO_FILE
echo 'The following plug-in updates have been conducted:' >> $INFO_FILE
echo '<table>' >> $INFO_FILE
echo '<tr><th align=\"left\" style=\"padding-right:20px\">Plug-in
ID</th><th align=\"left\" style=\"padding-right:20px\">Plug-in name</th><th
align=\"left\" style=\"padding-right:20px\">Old Version</th><th
align=\"left\" style=\"padding-right:20px\">New Version</th><tr>' >>
$INFO_FILE
awk 'BEGIN { FS = "[()\t]+" } ;{print "<tr><td align=\"left\"
style=\"padding-right:20px\">"$1"</td><td align=\"left\"
style=\"padding-right:20px\">"$2"</td><td align=\"left\"
style=\"padding-right:20px\">"$3"</td><td align=\"left\"
style=\"padding-right:20px\">"$4"</td></tr>"}' tmp2 >> $INFO_FILE
echo '</table>' >> $INFO_FILE
else
echo '<h2>Jenkins Plug-ins Update Report</h2>' >> $INFO_FILE
echo '<p><b>No updates</b> for installed plug-ins were
available!</p>'>> $INFO_FILE
fi
Post by g***@gmail.comHi,
We are using open source Jenkins and have a bunch of plugins installed.
Is there a way to update all the plugins that are in the "Updates" section
in the Plugin Manager?
--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/91f2a236-5e5d-4451-b84a-b042a966724e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.