Re: [Fuego] Installed plugins not listed under ‘Plu gin Manager’ -> ‘Installed’ page
Dhinakar Kalyanasundaram/FDS SW /SSIR/Staff Engineer/삼성전자 <[email protected]> Sun, 20 Feb 2022 15:01:01 +0530
| Newsgroups | dev.linux.lists.fuego |
|---|---|
| Message-ID | <[email protected]> |
Tim Bird, One issue I noticed when I took a running container and save its current state as an image (docker commit command). If I create a container from that image I see the Jenkins is still showing the old version (2.164.2 rather than 2.263.1) and the plugin manager page loads with errors. I actually wanted to take backup of the current container with upgraded Jenkins & plugins, any suggestions? Regards, Dhinakar > -----Original Message----- > From: Bird, Tim <[email protected]> > Sent: Saturday, February 19, 2022 6:09 AM > To: Dhinakar Kalyanasundaram/FDS SW /SSIR/Staff Engineer/삼성전자 > <[email protected]>; [email protected] > Subject: RE: Installed plugins not listed under ‘Plugin Manager’ -> ‘Installed’ > page > > Dhinakar, > > I'm sorry that you are having problems with the Jenkins plugins. > This has been a perennial problem for Fuego, trying to keep up with the > constant churn as the versions of Jenkins and its plugins keeps changing. > > Here is some information and some tips, in the hopes that it will be useful for > you. > > When Fuego installs, it uses a hardcoded Jenkins version. > In previous versions of Fuego, we hardcoded frozen versions of the Jenkins > plugins, so that when the docker container was created, it didn't pick up > arbitrary plugin versions, that might not be compatible with the version of > Jenkins used in the Fuego docker image. > > However, the last time we did a Jenkins version upgrade was in Dec 1, 2020. > At that time, for reasons unknown, we changed the Dockerfile so that the > plugin versions could float (that is, the latest version of each Jenkins plugin > would be used). This code has since been refactored to make native installs > easier, but the use of non-frozen versions of plugins still remains. > > In any event, I have an old docker container from December of 2020, that has > the original versions of plugins that were compatible with Jenkins 2.249.3 > (which was the version of Jenkins used in the 1.5.0 release of Fuego). > > Here are the version of plugins in that container: > ant:1.11 > antisamy-markup-formatter:2.1 > bootstrap4-api:4.5.3-1 > bouncycastle-api:2.18 > checks-api:1.1.1 > command-launcher:1.5 > description-setter:1.10 > display-url-api:2.3.4 > echarts-api:4.9.0-2 > external-monitor-job:1.7 > flot:1.0-SNAPSHOT (private-07/21/2017 10:45-dsl) > font-awesome-api:5.15.1-1 > greenballs:1.15 > icon-shim:2.0.3 > jackson2-api:2.12.0 > javadoc:1.6 > jdk-tool:1.4 > jquery3-api:3.5.1-2 > junit:1.45 > ldap:1.11 > mailer:1.32.1 > matrix-auth:2.6.4 > matrix-project:1.18 > pam-auth:1.6 > pegdown-formatter:1.3 > plugin-util-api:1.5.0 > popper-api:1.16.0-7 > scm-api:2.6.4 > script-security:1.75 > snakeyaml-api:1.27.0 > structs:1.20 > trilead-api:1.0.4 > windows-slaves:1.7 > workflow-api:2.40 > workflow-step-api:2.23 > > the Fuego install system uses an external script to install plugins (rather than > doing so inside Jenkins itself). This script is found inside the fuego docker > container at: /usr/local/bin/install-plugins.sh > > To use it, you specify a list of plugins to install, on the command line. You can > include a version number for a package by including the version number > following the package name and a colon (e.g. structs:1.20) > > It sounds like some of your plugin operations have upgraded your existing > plugins, so that now there are dependency problems with the collection of > plugins on your system. > > There are 2 ways to proceed: 1) Stay with version 2.249.3 of Jenkins, and try > to revert your plugins to ones that will work with that version of Jenkins, or 2) > migrate to a newer version of Jenkins. > > Option 2 is, IMHO, fraught with peril. But, depending on the extra modules > you want to install and your sensitivity to security issues, it may be the best > route forward. If the jira plugins you want to install rely on newer modules > which themselves rely on a newer Jenkins version, then in order to install > those you may have no choice but to update the version of Jenkins. > > Option 1 also entails some danger (as I have not tried the instructions I am > about to provide), but it *should* work. Try uninstalling the plugins that > have versions that don't match the ones in the above list (that are known to > be compatible with Jenkins 2.249.3). Then use install-plugins.sh to re-install > specific versions of the modules that match the list above. > > In order to run install-plugins.sh, you need to define two environment > variables, to indicate the Jenkins upload center and the Jenkins plugin > directory. These are names JENKINS_UC and REF, respectively. > > $ export JENKINS_UC=https://updates.jenkins.io > $ export REF=/var/lib/jenkins/plugins > $ ./install-plugins.sh <plugin1> <plugin2> ... > > To test the script, and get a list of currently installed plugins, you can specify > to install a non-existent plugin. Here's what I did, and the output I got back > from it: > Note that I get some curl certificate errors, but I think those can be ignored > for the purposes of this operation. > > -------- > > root@timdesk:/usr/local/bin# export > JENKINS_UC=https://updates.jenkins.io > root@timdesk:/usr/local/bin# export REF=/var/lib/jenkins/plugins > root@timdesk:/usr/local/bin# ./install-plugins.sh foo Creating initial locks... > Analyzing war... > Registering preinstalled plugins... > Downloading plugins... > Downloading plugin: foo from > https://updates.jenkins.io/download/plugins/foo/latest/foo.hpi > curl: (60) SSL certificate problem: certificate has expired More details here: > https://protect2.fireeye.com/v1/url?k=9e437f5d-c1d84794-9e42f412- > 0cc47a336fae-52a4eafdb6f541c5&q=1&e=9a036cb4-fc47-47cb-a812- > 14354795baa0&u=https%3A%2F%2Fcurl.haxx.se%2Fdocs%2Fsslcerts.html > > curl performs SSL certificate verification by default, using a "bundle" > of Certificate Authority (CA) public keys (CA certs). If the default bundle file > isn't adequate, you can specify an alternate file using the --cacert option. > If this HTTPS server uses a certificate signed by a CA represented in the > bundle, the certificate verification probably failed due to a problem with the > certificate (it might be expired, or the name might not match the domain > name in the URL). > If you'd like to turn off curl's verification of the certificate, use the -k (or -- > insecure) option. > 23:57:40 Failure (60) Retrying in 1 seconds... > curl: (60) SSL certificate problem: certificate has expired More details here: > https://protect2.fireeye.com/v1/url?k=c5b9e4dd-9a22dc14-c5b86f92- > 0cc47a336fae-d00fe4ef3dd99b9f&q=1&e=9a036cb4-fc47-47cb-a812- > 14354795baa0&u=https%3A%2F%2Fcurl.haxx.se%2Fdocs%2Fsslcerts.html > > curl performs SSL certificate verification by default, using a "bundle" > of Certificate Authority (CA) public keys (CA certs). If the default bundle file > isn't adequate, you can specify an alternate file using the --cacert option. > If this HTTPS server uses a certificate signed by a CA represented in the > bundle, the certificate verification probably failed due to a problem with the > certificate (it might be expired, or the name might not match the domain > name in the URL). > If you'd like to turn off curl's verification of the certificate, use the -k (or -- > insecure) option. > 23:57:42 Failure (60) Retrying in 1 seconds... > curl: (60) SSL certificate problem: certificate has expired More details here: > https://protect2.fireeye.com/v1/url?k=bbfbff80-e460c749-bbfa74cf- > 0cc47a336fae-4376695a932d0415&q=1&e=9a036cb4-fc47-47cb-a812- > 14354795baa0&u=https%3A%2F%2Fcurl.haxx.se%2Fdocs%2Fsslcerts.html > > curl performs SSL certificate verification by default, using a "bundle" > of Certificate Authority (CA) public keys (CA certs). If the default bundle file > isn't adequate, you can specify an alternate file using the --cacert option. > If this HTTPS server uses a certificate signed by a CA represented in the > bundle, the certificate verification probably failed due to a problem with the > certificate (it might be expired, or the name might not match the domain > name in the URL). > If you'd like to turn off curl's verification of the certificate, use the -k (or -- > insecure) option. > 23:57:43 Failure (60) Retrying in 1 seconds... > 23:57:44 Failed in the last attempt (curl -sSfL --connect-timeout 20 --retry 3 -- > retry-delay 0 --retry-max-time 60 > https://updates.jenkins.io/download/plugins/foo/latest/foo.hpi -o > /var/lib/jenkins/plugins/foo.jpi) > ./install-plugins.sh: line 63: $3: unbound variable > > WAR bundled plugins: > > > Installed plugins: > ant:1.11 > antisamy-markup-formatter:2.1 > bootstrap4-api:4.5.3-1 > bouncycastle-api:2.18 > checks-api:1.1.1 > command-launcher:1.5 > description-setter:1.10 > display-url-api:2.3.4 > echarts-api:4.9.0-2 > external-monitor-job:1.7 > flot:1.0-SNAPSHOT (private-07/21/2017 10:45-dsl) > font-awesome-api:5.15.1-1 > greenballs:1.15 > icon-shim:2.0.3 > jackson2-api:2.12.0 > javadoc:1.6 > jdk-tool:1.4 > jquery3-api:3.5.1-2 > junit:1.45 > ldap:1.11 > mailer:1.32.1 > matrix-auth:2.6.4 > matrix-project:1.18 > pam-auth:1.6 > pegdown-formatter:1.3 > plugin-util-api:1.5.0 > popper-api:1.16.0-7 > scm-api:2.6.4 > script-security:1.75 > snakeyaml-api:1.27.0 > structs:1.20 > trilead-api:1.0.4 > windows-slaves:1.7 > workflow-api:2.40 > workflow-step-api:2.23 > Cleaning up locks > > ----------------- > > Please try either option 1 or 2 and let me know what happens. > > By the way, you can shutdown Jenkins inside the docker container, and > restart it, by doing this, inside the container, as root. > $ service jenkins stop > $ service jenkins start > > Doing this might clear up the issue with plugins being present in the > installation directory but not registered with the system. You probably want > to do this after installing plugins from the docker container command line. > > You might also try to reset Jenkins from inside the web interface by going to > "manage Jenkins", "Reload Configuration from Disk". > > I hope this helps. Let me know what you try, and what the eventual > outcome is. > > Best of luck! > -- Tim > > P.S. If you decide to upgrade the version of Jenkins, make sure you check the > Jenkins config.xml for items that are needed by Fuego for proper Jenkins > operations. > Sometimes, newer Jenkins versions will change the items in the config.xml > file in a way that is not backwards compatible. The config.xml that Fuego > uses when it installs Jenkins into the docker container originally is in: > fuego/frontend-install/config.xml > > > > -----Original Message----- > > From: Dhinakar Kalyanasundaram/FDS SW /SSIR/Staff Engineer/삼성전자 > > <[email protected]> > > > > Dear Fuego users, > > > > > > > > I am using Fuego VERSION=1.5.0 and Jenkins ver. 2.164.2 > > > > > > > > I was trying to install a few Jira plugins to interface from Jenkins. > > > > After a while I noticed the below warning message (in many of my > > plugins) and many of my already installed & setup plugins like ‘Ant’, > > ‘Structs’, ‘Sidebar Link’, ‘Gerrit Trigger’ etc. were missing even though their > folders and *.jpi files were still available under ‘/var/lib/jenkins/plugins’ > directory inside docker container. > > > > > > > > Warning: This plugin requires dependent plugins that require Jenkins > > 2.249.1 or newer. Jenkins will refuse to load the dependent plugins > requiring a newer version of Jenkins, and in turn loading this plugin will fail. > > > > > > > > Now, I see many of my above plugin’s next version listed under ‘Plugin > Manager’ -> ‘Available’ with the above warning message. > > > > For e.g. Structs 1.20 version is already installed but not listed > > under ‘Plugin Manager’ -> ‘Installed’ page but instead ‘Plugin Manager’ -> > ‘Available’ is showing the next version of ‘Structs’ with the warning shown > above (in red italics). > > > > > > > > I tried removing the newly installed plugins and restart Jenkins & docker > container multiple times but still the issue was not solved. > > > > Any suggestions to fix this? > > > > Since I have lot of jobs configured with plugins like ‘Sidebar Link’, ‘Post > Build Task’ etc. I cannot reinstall or upgrade fuego. > > > > Thanks in advance. > > > > > > > > Regards, > > > > Dhinakar > > > > > > > > > > > > > > > > > > > > > <http://ext.samsung.net/mail/ext/v1/external/status/update?userid=dhin > > akar.k&do=bWFpbElEPTIwMjIwMjE3MTA1NjI3ZXBjYXM1cDFlMjR > > > hZDlmZGRjNTA1ZDAyNmRiZmU4NjQ4ZmU4YTVhYSZyZWNpcGllbnRBZGRyZX > NzPVRpbS5CaXJkQHNvbnkuY29t>