8

Is there a way to connect to a VPN for the duration of a Jenkins job? (freestyle or pipeline, I can work with either).

I scoured the plugin list figuring someone might have developed something, but the only page found was this OpenConnect page with no actual code developed, so that seems to be out.

We're running Jenkins on Ubuntu AWS boxes, if that changes anything. I'd prefer the ability to connect and disconnect in a single job, rather than making everything run on VPN.

Alex
  • 4,612
  • 6
  • 29
  • 49

2 Answers2

3

If you want to VPN for a jenkins task you would want to use the OpenConnect plugin as you mentioned.

Here are the steps to do that:

On linux (debian based)

sudo apt-get install openconnect

Add the following lines to the bottom of /etc/sudoers (ubuntu configuration)

jenkins ALL=NOPASSWD:/usr/sbin/openconnect*
jenkins ALL=NOPASSWD:/bin/kill*

The you will get an option in the Jenkins run task called:

Connect to Cisco AnyConnect VPN

Can also be found here: https://stackoverflow.com/questions/35151072/deploy-with-jenkins-to-vpn/43357784#43357784

ZaxLofful
  • 130
  • 4
2

I think that it's very difficult, if not impossible, to achieve something like this.

The reason is that once the machine running Jenkins is connected to the VPN it is also effectively disconnected from the original network it was connected to, which means Jenkins on that machine will loose connection with the rest of your Jenkins setup.

The only way that might work would be if using completely standalone one-machine Jenkins setups.

Dan Cornilescu
  • 6,780
  • 2
  • 21
  • 45