How to use "docker with pipeline" in Jenkins? - docker

In Jenkins I would like to use docker with pipeline.
That documentation says:
Starting with Pipeline versions 2.5 and higher, Pipeline has built-in
support for interacting with Docker
Our Jenkins is using version 2.305 (2021-08-03) right now. The latest version of jenkins currently is 2.340 (2022-03-22).
How can I find the version of "Pipeline" used at our system?
I found quite a few installed plugins called "Pipeline: ..." with various versions. Which one should be 2.5 in order to make the docker feature available?

Oh, I found it:
https://plugins.jenkins.io/workflow-aggregator/
https://github.com/jenkinsci/workflow-aggregator-plugin/blob/master/CHANGELOG.md
The Plugin was simply not installed at all. (Only many of it's dependencies where installed independently.)

Related

Passing Jenkins credentials to Artifactory without the Artifactory plugin

I have been asked to work on an older shared version of Jenkins. It is so old that installing the Artifactory plug-in is just not possible. The latest version of the plug-in wont load and installing the older version and all its dependencies without an internet connection is just a pain.
In short is there a quick and simple way in which we can pass the credentials to artifactory from Jenkins before Jenkins tries to read or write to the Artifactory repo ?
Edit:
My setup is Jenkins running on RH Linux, building a very simple Maven project with the requirement to output the build artefacts to Artifactory. JFrog CLI is available with my version of Artifactory, however is not running currently on the Linux box.
Option 1 - JFrog CLI
See the documentation of the Maven commands.
JFrog CLI is available on multiple linux architectures (386, amd64, arm64, arm, s390x to date). You can install it as part of your pipeline. Get it here.
Option 2 - Maven Artifactory Plugin
See the documentation of the plugin. You can also learn how to use the plugin from this project example.
You could simply use the Artifactory REST API with curl. Depending on your repository:
curl -u myUser:myP455w0rd! -X PUT "http://localhost:8081/artifactory/my-repository/my/new/artifact/directory/file.txt" -T Desktop/myNewFile.txt
The documentation from JFrog about this is actually pretty good.
You can also add hashes and other parameters this way.
https://www.jfrog.com/confluence/display/JFROG/Artifactory+REST+API

Some plugins could not be loaded due to unsatisfied dependencies. Fix these issues and restart Jenkins

I was working on jenkins and working fine but i don't know what happened Jenkins shows following errors and no jobs are visible to me after that:
I am new in jenkins please help me to solve this.
As I understand the problem it could happened in cause of downgrading jenkins version or updating plugins "Pipeline: Node and Processes".
You need to restore previous jenkins version or downgrade plugin.
Additionally you can configure jenkins to get plugins' versions which fit your jenkins version in "Manage Jenkins" -> "Manage plugins" -> "Advanced" -> "Update site" and set the version you are currently using (for example https://updates.jenkins.io/stable-2.176/update-center.json)
Jenkins plugins are dependent on Jenkins LTS versions in use. Best way is while installing the Jenkins take latest (but stable) version of plugins.
Since you are using 1.176 version and trying to upgrade the plugins, the latest plugins do not support the older version of Jenkins (since Jenkins follow Parallel incremental development).
You can resolve the problem in 2 ways.
1. Downgrade the plugins and keep the LTS Jenkins version as it is. (not preferred solution since you will not be able to use latest functionality of the plugins and using old plugins is not secured).
Downgrade of plugins will also be suggested by Manage Jenkins --> Manage Plugins --> Installed
2. Upgrade Jenkins version (LTS 2.24x.x)
It is time taking option, but if you are heavely using jenkins for your work it is more suggested to upgrade the version. Besides new plugins have more secured and vast functionalities.
You can check the Changelog and can decided which version is good for you.
Take a reference of Upgrading Jenkins link.
To understand plugins and Jenkins LTS version dependency, use Jenkins wiki(Confluence Page).
e.g. Pipeline:Node and Processes plugin wiki indicates that for version 2.29 you need to have Jenkins version 1.150.1 or higher.
Note: Latest Jenkins version supports HTTPS instead of HTTP URL for advanced proxy options under Manager Jenkins.

There is no AWS Codedeploy Plugin in Jenkins

I use two different Jenkins servers(tomcat jenkins) and i was trying to install a plugin for aws codedeploy.
However, I couldn't find it in the list of a Jenkins but another one has it.
Why the plugin libraries are different? even though i install them in a same way.
Also, How can i add a particular plugin in my Jenkins server?
Thank you.
Why the plugin libraries are different?
The plugin libraries shouldn't be different.
Which way did you search the plugin (jenkins gui, in the web)? Both your servers are on the same Jenkins version?
Also, How can i add a particular plugin in my Jenkins server?
I do it always via the GUI as described here: https://jenkins.io/doc/book/managing/plugins/

Jenkings on DCOS - Marathon-plugin missing after install

I added the Marathon plugin to Jenkins through the Jenkins management Web UI. It showed up as a list of available plugins to install. I also downloaded the HPI and added the plugin manually. In both cases, the Marathon option doesn't show up in my pipeline config. I'm following the steps here: https://dcos.io/docs/1.7/usage/tutorials/jenkins/#building-a-docker-image-and-deploying-it-to-marathon
Use version mesosphere/jenkins:3.0.1-2.32.2 in combination with persisting your Jenkins data on NFS. Installation and updates of plugins works for me with this combination.
You should consider missing functionality in older versions of Jenkins in DC/OS as described in this thread: https://github.com/mesosphere/dcos-jenkins-service/issues/105
Do you use a NFS share to persist your Jenkins data? In my experience you can not use DC/OS Jenkins properly without persisting Jenkins' data.

Jenkins plugin upgrade

I have a large fleet of Jenkins instances running in a cluster, all having the LDAP plugin version 1.6 (Jenkins version 1.611). I want to fleet-upgrade the LDAP plugin version to 1.7 (to incorporate environment variables in my plugin configuration). How do I achieve this without manually uploading 1.7 version through UI for each Jenkins instance?
I tried writing a script which basically performs these operations for each Jenkins instance:
Replace the existing .jpi/.hpi file in $JENKINS_HOME/plugins for ldap plugin with the correct .hpi file (of the 1.7 version)
Edit config.xml under $JENKINS_HOME which has the version number
Safe restart Jenkins
It works fine till step 2 but as soon as I perform safe restart, Jenkins magically puts in the original .jpi/.hpi file (the 1.6 version file) back inside $JENKINS_HOME/plugins. Jenkins instance has the 1.6 plugin version again in the UI. Is there a better way to perform fleet plugin upgrades in general? I want to mention that I want the 1.7 plugin version, not the latest
How do I fix this? I even tried using curl (mentioned at https://stackoverflow.com/a/20848745/1746529) but didn't help.
Got a working answer on Google groups.
"As you are on 1.x create an empty ldap.jpi.pinned file as a sibling and that marker will instruct Jenkins not to replace with the bundled plugin."
Came across the documentation for it as well - https://wiki.jenkins-ci.org/display/JENKINS/Pinned+Plugins

Resources