Trigger Jenkins build using slack (Jenkins hosted in enterprise server without internet) - jenkins

How can I use Slack trigger a Jenkins build for which Jenkins is hosted in a enterprise server without Internet connectivity?
I tried slash command in Slack, but when slack is trying to reach the Jenkins URL error is returned since its not accessible in internet.

Related

How to trigger a Jenkins build from XRay jira?

I am trying to trigger a build in Jenkins directly from Xray. I have been successfully able to create a trigger in jira and has provided the webhook url and other information needed to run the build. But on triggering the build from any Test Plan, I am getting the following error:
Error publishing web request. Response HTTP status:503
ERROR: The requested URL could not be retrieved.
When i'm hitting the same webhook url in any browser, then the build is getting triggered in jenkins, hence it seems there's no issue with the provided webhook url.
One thing to note is that our Xray is in Jira cloud whereas the Jenkins is running behind a VPN. Can anyone help me in resolving the above issue?
If your Xray on Jira Cloud is trying to acess Jenkins, the Jenkins server needs to have a public URL. If you have it behind the firewall then it's not possible for Xray or any other tool to trigger it directly.
You can call the Jenkins URL from your browser because you are probably with your vpn connected.
The possible workaround would be to use a tool such as ngrok, as mentioned in the docs, to make a tunnel, but beware with the security implications of exposing your Jenkins url to the world.
For reference, Xray cloud provides documentation/examples showcasing how to take advantage of Jira Cloud automation capabilities to trigger jobs, for example in Jenkins.

Jenkins says: Error: connect ECONNREFUSED 127.0.0.1:80 while trying to list jenkins jobs on slack using hubot

I wanted to have a bot integrated with slack, using which my team can run Jenkins builds. I tried doing it using hubot, following the steps here: https://slack.dev/hubot-slack/
I mentioned all the variables (jenkins_url, jenkins auth -username:password, slack token) in .bashrc and sourced it. The bot connected to slack and when run #hunot help, it will list all the options. So far so good.
I also included jenkins.coffee script in hubot-scripts.json, to reach jenkins however, I'm unable to connect to jenkins. When I run #hubot help, it lists jenkins commands as well. The problem arises when I actually run one of those jenkins commands. When I run #hubot jenkins list, it returns Jenkins says: Error: connect ECONNREFUSED 127.0.0.1:80
I'm not sure what the issue is. On my jenkins host, I'm using nginx, reverse proxy (so that I don't have to use 8080 in url while accessing jenkins). Is there something obvious I'm missing?
Also, how can I access jenkins without user and password?

JIRA trigger plugin is not working if Jenkins is configured with HTTPS

I have JIRA and Jenkins installed locally on my system. Jira is installed with http on port 8082 and Jenkins is configured with https on port 443.
I have configured Jira Trigger Plugin which triggers Jenkins build if status is changed in JIRA, it works fine when Jenkins is launched with http on port 8083.
Webhook URL - http://localhost:8083/jira-trigger-webhook-receiver/
It does not work when jenkins is launched with https on port 443.
Webhook URL - https://localhost/jira-trigger-webhook-receiver/
I downloaded ".pem" file (security file) from Jenkins server (https://localhost) and added it into the keystore of JIRA (E:\JIRA\8.5.1\Install\jre\lib\security\cacerts) on my local installation but I was not able to trigger jenkins build based on JIRA status change.
I went ahead and added ".pem" in every "cacerts" keystore of every java which is installed on my system but still it was not working for me.
Can anybody please help me here, what am I missing when it comes to configuring webhook for jenkins server if jenkins is configured with https.

How to set up an Azure DevOps service connection or endpoint to my localhost Jenkins install

I have Jenkins installed on an Ubuntu 18.04.3 LTS desktop PC on my localhost.
I also have an AzureDevOps repo on which I can successfully run a build, through a Jenkins pipeline job, connecitivity achieved via my AzureDevOps personal access token (PAT).
I am now trying to set up a Jenkins service connection or endpoint in AzureDevOps, to enable me trigger an Azure DevOps pipeline release whenever a Jenkins build completes successfully.
To achieve this in AzureDevOps, I am trying to set up access to Jenkins via a Jenkins service endpoint. The endpoint configuration requires among others, a Jenkins "Server URL" (screenshot below). Not surprisingly, AzureDevOps is unable to connect to my Jenkins instance as it's running on my local machine and therefore not publicly accessible.
Any suggestions on how I can overcome this hurdle would be most appreciated.
How to set up an Azure DevOps service connection or endpoint to my localhost Jenkins install
As we know, in order to receive the service hook notifications, you'll need to expose a port to the public internet.
To expose a port to the public internet, you can try to use the tool ngrok:
ngrok exposes local servers behind NATs and firewalls to the public
internet over secure tunnels.
Please check the document Configure a service hook for PR events for some more details.
Hope this helps.

Is there any way to integrate Bitbucket on cloud and Jenkins On premise

I am trying to integrate Bitbucket on cloud and Jenkins on premise, but once I enter the IP of my local Jenkins in Bitbucket cloud it show error URL not valid.
Is there a way to solve this, or do I need to buy Jenkins cloud license?
Your local Jenkins server is not seen by a cloud Bitbucket server because it is an internal server.
You can solve it in one of those alternatives:
Ask your system administrator to expose your Jenkins server with a global IP address along with the Jenkins port (e.g. 8080) so the Bitbucket server will be able to access it. This is not totally secure due.
Activate the Jenkins job that pulls from the remote BitBucket server on time internal - in the Job 'Build Triggers' section check the 'Poll SCM' checkbox and set the cron setting (for example: 'H/15 * * * *' for building every 15 minutes. Notice that it will not build if there were no code changes)

Resources