Jenkins Job mit VPN?


7

Gibt es eine Möglichkeit, für die Dauer eines Jenkins-Jobs eine Verbindung zu einem VPN herzustellen? (Freestyle oder Pipeline, mit denen ich entweder arbeiten kann).

Ich habe die Plugin-Liste durchsucht, um herauszufinden, ob jemand etwas entwickelt hat, aber die einzige gefundene Seite war diese OpenConnect- Seite, auf der kein tatsächlicher Code entwickelt wurde.

Wir führen Jenkins auf Ubuntu AWS-Boxen aus, wenn sich dadurch etwas ändert. Ich würde es vorziehen, die Verbindung in einem einzigen Job herzustellen und zu trennen, anstatt alles über VPN laufen zu lassen.


Ich möchte nur wiederholen (für das OP und andere, die dies möglicherweise finden), dass Sie dies tatsächlich tun können, wenn Sie noch suchen. Schauen Sie sich bitte meine Antwort an.
ZaxLofful

Antworten:


3

Ich denke, dass es sehr schwierig, wenn nicht unmöglich ist, so etwas zu erreichen.

Der Grund dafür ist, dass der Computer, auf dem Jenkins ausgeführt wird, nach dem Verbinden mit dem VPN auch effektiv vom ursprünglichen Netzwerk getrennt wird, mit dem er verbunden war. Dies bedeutet, dass Jenkins auf diesem Computer die Verbindung zum Rest Ihres Jenkins-Setups verliert.

Der einzige Weg, der funktionieren könnte, wäre die Verwendung vollständig eigenständiger Jenkins-Setups mit einer Maschine.


Was für ein Mist, aber das macht vollkommen Sinn. Vielen Dank!
Alex

Dies ist zum Zeitpunkt des Schreibens dieses Kommentars nicht korrekt, und ich glaube auch nicht, dass es jemals war ... nur zu sagen
ZaxLofful

@ZaxLofful Der VPN-Client ändert zumindest die Routing-Tabelle, sodass das lokale Netzwerk nicht erreichbar ist (mit den üblichen Mitteln, was ich unter "effektiv getrennt" verstehe). Zumindest müssten Sie ein anderes Skript ausführen, um die Konnektivität sorgfältig wiederherzustellen, ohne den VPN-Verkehr zu beeinträchtigen. Und wenn der VPN-Client aufgrund der Intervention dieses Skripts nicht intelligent genug ist, um zur ursprünglichen Routing-Tabelle zurückzukehren, müssen Sie auch nach dem Trennen der Verbindung zum VPN eingreifen. Keine Ahnung, ob neben dem Routing noch etwas anderes angesprochen werden muss.
Dan Cornilescu

@DanCornilescu: Ich möchte noch einmal nur sagen, dass dies nicht die Standardaktion ist, die stattfindet. Die meisten VPN-Clients verwenden heutzutage standardmäßig Split-Tunneling. Consumer-VPNs, die ein Netzwerk umrunden sollen, werden dies nicht tun, aber darüber sprechen wir hier nicht.
ZaxLofful

2

Wenn Sie für eine Jenkins-Aufgabe VPN möchten, möchten Sie das OpenConnect-Plugin wie erwähnt verwenden.

Hier sind die Schritte dazu:

Unter Linux (debianbasiert)

sudo apt-get install openconnect

Fügen Sie die folgenden Zeilen am Ende von / etc / sudoers hinzu (Ubuntu-Konfiguration)

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

In der Jenkins-Ausführungsaufgabe erhalten Sie eine Option mit dem Namen:

Connect to Cisco AnyConnect VPN

Hier finden Sie auch: /programming/35151072/deploy-with-jenkins-to-vpn/43357784#43357784

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.