Открываешь адресс http://jenkins:8080/scripts
ставишь код
import jenkins.model.*
import com.cloudbees.plugins.credentials.*
import com.cloudbees.plugins.credentials.common.*
import com.cloudbees.plugins.credentials.domains.*
import com.cloudbees.plugins.credentials.impl.*
import com.cloudbees.jenkins.plugins.sshcredentials.impl.*
import hudson.plugins.sshslaves.*;
import hudson.model.Node.Mode
import hudson.slaves.*
import jenkins.model.Jenkins
System.setProperty(hudson.model.DirectoryBrowserSupport.class.getName() + ".CSP", "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';")
def deployPlugin(plugin) {
if (! plugin.isEnabled() ) {
plugin.enable()
}
plugin.getDependencies().each {
deployPlugin(pm.getPlugin(it.shortName))
}
}
['groovy', 'gradle', 'chucknorris', 'greenballs', 'github', 'analysis-core', 'analysis-collector', 'cobertura',
'project-stats-plugin','audit-trail', 'view-job-filters', 'disk-usage', 'global-build-stats',
'radiatorviewplugin', 'violations', 'build-pipeline-plugin', 'monitoring', 'dashboard-view',
'iphoneview', 'jenkinswalldisplay', "git","git-client","build-flow-plugin","git-parameter","htmlpublisher","ftppublisher",
"bitbucket-build-status-notifier","bitbucket-approve","copy-to-slave","icon-shim","email-ext","emailext-template","notification",
"stashNotifier","allure-jenkins-plugin","analysis-collector","analysis-core","bootstraped-multi-test-results-report","build-environment",
"checkstyle","cobertura","disk-usage","performance","perfpublisher","sonar","sonargraph-plugin","test-stability","xunit","batch-task","copyartifact","docker-build-step","envinject","fail-the-build-plugin","groovy","http_request","job-dsl","fstrigger","build-timeout","AdaptivePlugin","copy-data-to-workspace-plugin","mask-passwords","matrixtieparent","timestamper","virtualbox","vncrecorder","vncviewer","build-with-parameters","nodelabelparameter","job-import-plugin","multi-branch-project-plugin","multiple-scms","greenballs","credentials","scm-api","rebuild","clone-workspace-scm","chucknorris","jobConfigHistory","plugin-usage-plugin","plain-credentials","cloudbees-credentials","config-file-provider","token-macro",
"docker-plugin","docker-build-step","docker-traceability","docker-build-publish","docker-workflow","build-timestamp","uptime","configurationslicing","scriptler","simple-theme-plugin","thinBackup","build-pipeline-plugin","durable-task","workflow-step-api","swarm","parameterized-trigger","nested-view","git-server","nodelabelparameter","jquery","cloudbees-folder","join","delivery-pipeline-plugin","extra-columns","buildgraph-view","image-gallery","livescreenshot","dry","dashboard-view","any-buildstep","conditional-buildstep","run-condition","flexible-publish","docker-commons","workflow-cps","mercurial","ssh-agent","workflow-api","workflow-support","ace-editor","workflow-scm-step","jquery-detached","authentication-tokens","build-blocker-plugin"].each{ plugin ->
Jenkins.instance.updateCenter.getPlugin(plugin).deploy()
println "install "+plugin;
//deployPlugin(plugin);
}
pm = Jenkins.instance.pluginManager
pm.doCheckUpdatesServer()
plugins = pm.plugins
plugins = Jenkins.instance.updateCenter.getUpdates()
def needRestart = false;
plugins.each {
println it.name;
Jenkins.instance.updateCenter.getPlugin(it.name).getNeededDependencies().each {
println " -->"+it.name;
it.deploy()
}
needRestart = true;
it.deploy()
}
if (Jenkins.instance.updateCenter.isRestartRequiredForCompletion() || needRestart) {
hudson.model.Hudson.instance.doSafeRestart(null)
}