I'd like to set up a standalone Jenkins update site for use on a network without Internet access. I have written a script which mirrors the official update site by downloading the update-center.json file and then parsing the URLs to all the latest plugins and wars and downloading them via wget. I can then burn all this to a DVD and move it to my isolated system and stick that directory hierarchy under a web server, in my case a copy of Winstone. However at this point it all fails as the update-center.json file still contains the URLs to external sites and if you update them, the digest/signatures in the file don't match and so Jenkins won't install the plugins. At the moment I have worked around this by adding updates.jenkins-ci.org as an alias to the servers hostname in its hosts file. However this is not an ideal solution, albeit it does work. I have searched around for possible solutions and found a post in the devs forum which was also seeking a solution, (https://groups.google.com/forum/#!msg/jenkinsci-dev/4ekQsLzqVFg/YjhrcqPsAAAJ). The poster there had tried backend-update-center2 to construct a update-center.json file with valid signatures, but as they stated, this was all a bit over the top for a well-controlled, standalone system. Ideally I would like to modify the URLs in the existing JSON file and get Jenkins to ignore the invalid signatures. A suggested solution, one which I had seen in other searches, was to set hudson.model.DownloadService.noSignatureCheck to 'true'. However I could not find this internal variable. I did find one named just hudson.model.DownloadService.signatureCheck and when I tried setting that to 'false' via the Script Console it did appear to have the desired effect. So my next problem is how to set this variable when Jenkins starts up. Preferably I want to be able to find a solution that works from a clean install also, so the initial getting started pages can install the recommended plugins. Again some searching suggested that commands could be put in the %JENKINS_HOME%\init.groovy file, or any groovy script in %JENKINS_HOME%\init.groovy.d\. This method seems to be a way to configure Jenkins when it runs, after its initialised. However much as I try I don't seem to be able to get this to work. The script I created, setting the variable above, does not seem to get run. I conclude this based on the fact that the variable is still set to 'true' if I print it in the Script Console, and any println() calls I put in the groovy script don't appear, as far as I can tell, in any logs. If anyone has any suggestions on how I can set the signatureCheck variable at start up they would be much appreciated. BTW my set up is a Windows 7 64 bit machine, running Jenkins 2.18. Thanks
This email and any attachments to it may be confidential and are intended solely for the use of the individual to whom it is addressed. If you are not the intended recipient of this email, you must neither take any action based upon its contents, nor copy or show it to anyone. Please contact the sender if you believe you have received this email in error. QinetiQ may monitor email traffic data and also the content of email for the purposes of security. QinetiQ Limited (Registered in England & Wales: Company Number: 3796233) Registered office: Cody Technology Park, Ively Road, Farnborough, Hampshire, GU14 0LX http://www.qinetiq.com. -- 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/57d040ca.c2111c0a.8061b.4bf3SMTPIN_ADDED_MISSING%40gmr-mx.google.com. For more options, visit https://groups.google.com/d/optout.