Hi Is there any way of managing the plugins installed in Jenkins other than through the GUI interface?
Ideally I would like to be able to define a list of plugins (names, URLs, version numbers) in a text file, which would be read by Jenkins and ensure that the correct plugins are installed (and warn/error of any discrepancies or extraneous plugins). Ideally, something similar to a `pom.xml`, or node's `package.json`, or python's `requirements.txt`. I'd be happy with such a tool if it were a standalone executable, or another Jenkins plugin, or a feature of some Config Management tool (e.g. Puppet, Chef, Ansible, Salt). I know that plugins can be installed by copying .hpi/.jpi files to ~jenkins/plugins/. This works for backing up, mostly, but is far from ideal. Problems I have with this: * plugin bloat: no record of when/why a plugin was installed or if it should be removed; over time a large number of unused plugins acccumulate * version drift: no record of when/why a plugin was updated, or why a particular version was changed; in most cases you just use the most up to date version from when you installed the plugin, and upgrading in the future is difficult to track * custom plugins: if I've recompiled a .hpi file for a fork of a plugin I've made, it's tough to tell the difference between my version and the version in the update-center I'm a big fan of infrastructure-as-code. Particularly, I like being able to see a history of infrastructure changes in a source controlled repository. Source control of Jenkins plugins would allow * informative commit messages * code review for why plugins are being added * easier rollbacks to previous good states when upgrading Being able to deploy a Jenkins master from configuration would provide a bunch of other benefits: * easier to deploy new Jenkins masters (for testing, disaster recovery, complex multi-master configurations) * indicate the source of the plugin (i.e. the update-center, a github repo, or an internal artifact manager) * indicate the correct version to use Is there any existing tool or framework that would provide all of this? Or will I have to roll my own? Thanks! -- 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+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/64dbe471-e394-4eab-b0fc-8e2e9afbbf23%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.