-
Bug
-
Resolution: Unresolved
-
Major
-
Jenkins 2.623.3, websphere-deployer 1.6.1, WebSphere Application Server 9.0.5.6.
Ok, so we've been trying to get this to work for the past few days, without success. We have read numerous articles on similar issues:
https://issues.jenkins-ci.org/browse/JENKINS-31450
https://issues.jenkins-ci.org/browse/JENKINS-30265
https://issues.jenkins-ci.org/browse/JENKINS-21643
https://wiki.jenkins.io/display/jenkins/ibm+websphere+configuration
But I'm hoping someone might be able to shed some light on the following queries we have. We've been trying to deploy a WAR file artifact (compiled from source code in GIT) to a WebSphere Application Server. Firstly, each of the servers are running in OpenShift (Jenkins 2.263.3 / WebSphere Application Server 9.0.5.6 / WebSphere Portal DX Server 9.x). We believe there is connectivity between each of the servers, as we've tested communication using 'curl' for the ports that we've specified.
Jenkins pom.xml File
The installed Jenkins pom.xml file (/var/lib/jenkins/plugins/websphere-deployer/META-INF/maven/org.jenkins-ci.plugins/websphere-deployer/) it currently shows:
...
<properties>
<jenkins.version>1.608</jenkins.version>
<was.version>7.0.0</was.version>
<liberty.version>8.5.x.6</liberty.version>
</properties>
...
It shows an older version of Jenkins, as we're running 2.263.3 and we're trying to deploy to WAS 9.0 which is not what's shown.
QUESTIONS:
What is the Jenkins pom.xml used for and do we need to change settings in this file to match our environment? And then restart?
Or are there other configuration settings that need to be updated manually? Do these settings make a difference? And what is it used for?
Self Signed WAS SSL Certificate
We also have a self-signed certificate running on the WAS server Admin Console URL. This is signed as localhost.
We've tried specifying a "route" (Domain Name) in the WebSphere IP/DNS setting, but even though we're able to Test Connection successfully we're not able to deploy / detect any code installed on the server.
QUESTIONS:
Do we need to have an actual fully qualified hostname in the certificate, or is a "localhost" hostname OK? Does this then need to match our WebSphere IP/DNS setting we specify.
We've tried to install the signer certificate by downloading the certificate and adding it to the cacerts file for the Java installed, using the keytool, however, our Jenkins server cacerts file is owned by "root" and we are not able to update this file using our ID and we're not able to sudo.
We've also tried adding the DummyClientKeyFile.jks as per the published note, but this appears to have made no difference: https://aboullaite.me/continuous-deployment-with-maven-jenkins-and-was/
WHAT WORKS:
We are connecting to GitHub successfully, to download a copy of our source code (Private repository).
We then successfully invoke Maven to perform a "clean install".
And we've even downloaded the generated WAR file separately and installed this manually on the WAS Server (via the Admin Console) successfully.
We then try to run the websphere-deployer plugin to install / update the application - which is where we run into problems.
THE ERROR:
We have read that the websphere-deployer plugin uses HTTPS on port 9043 to communicate with the WAS server, however, our secure port for WAS is running on 10041, our secure port for WPS (WebSphere Portal Server) is running on 10042, and our SOAP connector is running on 10033.
We're able to "Test Connection" successfully, however, it fails to detect whether the application is installed or not, in order to update it, possibly due to a certificate error or incorrect (blocked) port.
The error message that we receive is as follows:
Generating EAR For Artifact: WidgetFormHandler
Artifact is being deployed to virtual host: default_host
Error deploying to IBM WebSphere Application Server: org.jenkinsci.plugins.websphere.services.deployment.DeploymentServiceException: Could not determine if artifact 'WidgetFormHandler' is installed: General Exception:
at org.jenkinsci.plugins.websphere.services.deployment.WebSphereDeploymentService.isArtifactInstalled(WebSphereDeploymentService.java:477)
at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.stopArtifact(WebSphereDeployerPlugin.java:409)
at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.perform(WebSphereDeployerPlugin.java:245)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:753)
at hudson.model.Build$BuildExecution.post2(Build.java:177) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:698)
at hudson.model.Run.execute(Run.java:1932) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Performing rollback of 'WidgetFormHandler'
WARNING: Artifact doesn't exist rollback repository
Build step 'Deploy To IBM WebSphere Application Server' changed build result to FAILURE
Finished: FAILURE
QUESTIONS:
Do we appear to have SSL issues, port issues or something else? And are there any logging classes we should look at or log files to check that might indicate where the problem is occurring?
Any assistance you would be able to provide would be greatly appreciated.