Well, this has all been very interesting, and I am truly grateful for the time you took to write your answers. I went with the backup plan - zipping the Oracle JDK 8 directory and then letting Jenkins get it from Artifactory. That works good enough for me. I think that the conclusion is that the Oracle JDK installation executable is just something particularly nasty that has to be worked around...
On Friday, December 18, 2020 at 7:33:18 PM UTC+1 Mark Waite wrote: > On Fri, Dec 18, 2020 at 10:29 AM Amedee Van Gasse <[email protected]> > wrote: > >> The Oracle JDK is a requirement for a non-technical reason, and I am not >> at liberty to discuss the nature of those non-technical requirements on a >> public communication channel. >> I know, that sounds more mysterious than it actually is. :-) >> >> An Oracle JDK license is only required for Oracle Java SE 11+, and for >> updates to Oracle Java SE 8 released after January 2019. >> From which you can deduce that the exact JDK 8 version we use, is 8u221. >> >> We have jobs that have to run the same identical code on different JDK >> versions. >> Past experiences (implementation changes in Collections, legacy code >> using sun.* imports,...) have learned us the hard lesson that we should not >> trust JDK compatibility between versions, so we run our code in parallel on >> _all_ JDK versions that we support. >> I seriously hope that it stays a secret that there are about a dozen >> different JDK vendors/distributions these days, build times are already >> long enough as it is now with what we have... >> Code snippet to illustrate: >> >> static javaVersions = ['jdk-8-oracle', 'jdk-11-openjdk', >> 'jdk-13-openjdk', 'jdk-14-openjdk', 'jdk-15-openjdk', 'jdk-16-openjdk'] >> >> >> >> When you write "unpacked in a user directory", what does that mean >> exactly for you? >> A) JDK is "installed" in advance on the agent, either manually >> (next-next-next-finish) or configuration management (Chef, Puppet, >> Ansible,...) >> B) JDK is "installed" by Jenkins, >> using https://$JENKINS_URL/configureTools/ -> JDK installations >> >> We do B, but now you've got me thinking that you maybe do A? >> > > That's correct. The JDK that runs the agent is pre-installed on the agent > before the agent starts. I install it with a shell script (Unix) or > PowerShell script (Windows) by unpacking the zip file provided by the > AdoptOpenJDK project. Chef, Puppet, or Ansible would do that as well. > > >> Do you use only one single JDK version ever on each agent? >> > > I run the agent with a single JDK. When the controller is running with > JDK 8u275, I try my best to run the agent with JDK 8u275. When > the controller is running with JDK 11.0.9, I try my best to run the agent > with JDK 11.0.9. > > Jenkins is rather forgiving of mismatches in JDK versions, but I prefer to > generally keep them matched. In my specific case, the match is imperfect > since I have Raspbian agents that are "stuck" on 8u212, a FreeBSD 10 agent > that is "stuck" on 8u181, a FreeBSD 12 agent that is "stuck" on 8u242, and > an OpenBSD agent that is "stuck" on 8u252. They are "stuck" there because > I've not found newer versions for those environments yet. > > I can run other JDK's as part of agent jobs with the Jenkins AdoptOpenJDK > tool installer plugin. That plugin is similar to the Oracle JDK tool > installer plugin but provides AdoptOpenJDK rather than Oracle JDK. > > >> >> >> I wrote "installed", because that can either be >> * Windows Installer, for Oracle JDK >> * Extract zip file, for OpenJDK (for me, binaries from >> https://jdk.java.net/ or for you, from https://adoptopenjdk.net/) >> >> I haven't really seriously looked at the difference between OpenJDK and >> AdoptOpenJDK. >> >> -- >> Amedee Van Gasse >> On Friday, December 18, 2020 at 2:39:32 PM UTC+1 Mark Waite wrote: >> >>> I use a WIndows Server 2019 ssh agent that has AdoptOpenJDK 8u275 >>> unpacked in a user directory with JAVA_HOME set in the environment of that >>> user to use the AdoptOpenJDK 8u275 installation. It seems like you should >>> not need the Oracle JDK at all if you use AdoptOpenJDK. That avoids the >>> requirements for purchase of an Oracle JDK license and does not require >>> privilege escalation. Is the Oracle JDK a requirement for some other >>> reason? >>> >>> When I run my Jenkins controller (Dockerized on Linux) on Java 11, the >>> Windows Server 2019 ssh agent is configured to use AdoptOpenJDK 11.0.9.1 >>> unpacked in a user directory. >>> >>> Mark Waite >>> >>> On Fri, Dec 18, 2020 at 6:10 AM Amedee Van Gasse <[email protected]> >>> wrote: >>> >>>> There was a thread here last month "Recommended way to setup a windows >>>> agent nowadays?" >>>> >>>> I have a (new) windows agent (Windows Server 2019) that is connected >>>> through SSH, as described in that thread. It's configured through Packer >>>> and Ansible, to avoid clickety-click Next-Next-Next-Finish. >>>> >>>> I have a user "jenkins" on Windows, who is a regular user, not an >>>> Administrator. >>>> >>>> When I start a job on this new agent, I get this error: >>>> >>>> *00:00:09.445* Installing >>>> C:\Users\jenkins\tools\hudson.model.JDK\jdk-8-oracle\jdk.exe >>>> *00:00:09.475* [jdk-8-oracle] $ >>>> C:\Users\jenkins\tools\hudson.model.JDK\jdk-8-oracle\jdk.exe /s >>>> ADDLOCAL="ToolsFeature" REBOOT=ReallySuppress >>>> INSTALLDIR=C:\Users\jenkins\tools\hudson.model.JDK\jdk-8-oracle /L >>>> C:\Users\jenkins\tools\hudson.model.JDK\install6146141972686424355log >>>> *00:00:10.064* ERROR: SEVERE ERROR occurs *00:00:10.064* >>>> org.jenkinsci.lib.envinject.EnvInjectException: java.io.IOException: >>>> Cannot >>>> run program "C:\Users\jenkins\tools\hudson.model.JDK\jdk-8-oracle\jdk.exe" >>>> (in directory "C:\Users\jenkins\tools\hudson.model.JDK\jdk-8-oracle"): >>>> CreateProcess error=740, The requested operation requires elevation >>>> >>>> In short, Jenkins launches the Oracle JDK 8 installer, to install in >>>> C:\Users\jenkins\tools\hudson.model.JDK\jdk-8-oracle, and it fails to do, >>>> because the Oracle installer program, jdk.exe, requires elevated >>>> privileges >>>> to be able to install JDK8. >>>> >>>> This contrasts with OpenJDK installers, which are just zip files that >>>> are extracted into the install directory and do not require elevated >>>> privileges. >>>> (context: we have builds that need to run on more than one JDK, because >>>> legacy products) >>>> >>>> In Ye Olden Days I know that Java Web Start was used to connect windows >>>> agents, and that allows you to register Jenkins as a service, which then >>>> has the required elevated privileges to install software (I think, not >>>> sure, I'm basically a Linux user for the better part of 2 decades). But as >>>> we all know, Java Web Start is going the way of the dodo, and I feel more >>>> at ease if my Linux agents and my Windows agents are configured in exactly >>>> the same way. >>>> >>>> I have a backup plan, and that is to extract the JDK8 installation >>>> directory from the Oracle installer, zip that, put it on our Artifactory >>>> server, and use the zip as an installer in Global Tool Configuration. >>>> Before I do that, I would like to hear if others have encountered this >>>> issue before and how they have solved it. >>>> >>>> -- >>>> 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 [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/jenkinsci-users/dd38ac37-1952-48a7-aafd-19fd3cd092d4n%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/jenkinsci-users/dd38ac37-1952-48a7-aafd-19fd3cd092d4n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >> 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 [email protected]. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/jenkinsci-users/64660224-54e8-46a8-929e-3215d77f6376n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/jenkinsci-users/64660224-54e8-46a8-929e-3215d77f6376n%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/584c64a1-5ec3-4ab8-9ae0-7df8e744474bn%40googlegroups.com.
