Een Deployment-Job verbënnt sech, kopéiert säin Artefakt a mëllt Erfolleg. Den Tunnel, deen en opgemaach huet, kann nach lafen, wann den nächsten Job ufänkt, an d'Route, déi en geännert huet, gehéiert zum ganzen Host. E Build-Resultat beschreift de Kommando, net den Zoustan, deen en hannerlooss huet. Behandelt d'VPN als eng Ressource mat enger Liewensdauer, net als eng Linn um Ufank vun enger Etapp.

Wat nach op dësem Host leeft

Een Jenkins-Knuet kann e puer Executors gläichzäiteg lafe loossen, an een Job, deen d'Routen vum Host, d'Astellunge vum Resolver oder eng systemwäit Verbindung ännert, ännert se fir alleguer. Ob een aneren Job dat mierkt, hänkt vun der Route- a Filterpolitik of, net vun enger allgemenger Regel iwwer VPNen. Zougang zum Repository, Zougang zu Artefakten an de Kontrollkanal sinn getrennt Fuerderungen, déi den Runner nach ëmmer brauch. Setzt se op d'Lëscht vun den Deployment-Ziler, ier der en vollstännegen Tunnel wielt.

Wann de Kontrollkanal den Tunnel kéint kräizen, muss den Design et bewosst soen. Et während engem Rollback ze entdecken ass kee Plang. Schreift déi zwou Lëschten op: wat den Job privat mussi erreechen, a wat den Runner op alle Fall mussi erreechen.

Brauch dësen Job iwwerhaapt privaten Zougang?

Frot, ier der den Tunnel bäisetzt, ob d'Build-Etapp en nach brauch. Een private Deployment-Agent kann een ugehollenen Artefakt sichen a setzen an deployment ëm, wat déi allgemeng Build-Etapp aus dem private Reseau eraushält. Déi Spléckung ass meeschtens méi bëlleg wéi all Build-Schrëtt ze léieren duerch een Tunnel ze routen.

Wielt d'Grenz aus dem Workflow, net aus der Gewunnecht. Wann d'Äntwert nee ass, ass de Rescht vun dëser Säit iwwerflësseg, an dat ass dat bescht Resultat, dat et gëtt.

Den Zoustan, deen den nächsten Job ierft

Beschreift, wat wouer soll sinn virum Job, während en privaten Zougang huet, an nodeems en eriwwer ass, inklusiv dem Ofbriech. Den Endzoustan ass deen, deen am dackste stëll bleift, an en ass deen, deen den nächsten Job ierft. Schreift en nieft der Pipeline op, amplaz en an engem sengem Gediechtnes ze loossen.

MomentWhat proves itWhat leaks if it is skipped
Job start: pre-flight route checkThe route table shows no tunnel from an earlier job, and the profile list is emptyA stale route sends deployment traffic into a dead tunnel
Job end: disconnect and shredThe profile is down and the temporary key file is goneThe next job inherits an open tunnel and a usable credential
Cancelled job: reboot or disposalThe host is replaced or rebooted before the next job startsA killed process leaves the tunnel up with no owner

Een dedizéierten oder ewechgeheienen Agent mécht déi Grenzen méi einfach duerchzesetzen. Een Container oder e Namespace hëlleft nëmmen, wann seng Reseau- a Privilegie-Setup déi Ännerung wierklech isoléiert.

Stoppt d'Verbindung, net de Programm

Notzt den Finaliséierungswee vun der Pipeline, fir d'Verbindung ze schléissen, déi dësen Job ugefaang huet, a seng temporär Authentifikatiounselementer ewechzehuelen. Vergläicht keng Prozesser nom Programmnumm op engem Host, deen aner Jobs benotzen; stoppt amplaz déi spezifesch Verbindung. Déi zwou Kommandoen hei drënner sinn déi ganz Botz, an keng dovun hänkt dovun of, e Prozess ze fannen.

vpn-cli disconnect --profile "$PROFILE"
rm -f "$RUNNER_TEMP/client.key"

Finaliséierung ass keng Isolatioun: een Runner, deen stierft, behält den Tunnel, deen en opgemaach huet, an e Prozess, dee mat Gewalt gestoppt gëtt, iwwerspréngt de Block ganz. Dofir kann de Botzkommando eleng net den ganzen Design sinn. Sou schléit et an der Praxis fehl: een Deployment-Job gëtt bei der Kopéierschrëtt ofgebrach, de Finaliséierungsblock leeft ni, an den nächsten Job op demselwechten Host fänkt mat engem liewenden Tunnel an enger Route un, déi op een Reseau weist, deen en net erreecht. De Feeler gesäit aus wéi e 'DNS'-Problem am nächste Build, Stonne nodeems den Job, deen en verursaacht huet, eriwwer war.

Hält den Numm vum Profil an de Wee vun den Authentifikatiounsdonnéeën an der Ausgab vum Job fest. Een nackten Ofbriechskommando ouni Identifikator ass spéider schwéier ze auditiven. D'Loglinn ass och dat, wat beweist, datt de Block gelaf ass, wann eng spéider Enquête dat freet.

Gitt dem Job een Host, deen keen aneren notzt

Ewechgeheien Infrastruktur hëlt de Problem vun der Ierfschaft ewech, amplaz en ze managen. Een neien Agent pro Job fänkt ouni Route, ouni Profil an ouni Authentifikatioun vun aneren un, an seng Zerstéierung botzt op, wat den Job hannerlooss huet. Dat kascht méi pro Build, an et ass den éierleche Präis vun enger Grenz, déi net vu Botzcode ofhänkt. Fir Jobs, déi Produktiounsreseaue beréieren, ass et meeschtens déi méi bëlleg Optioun, wa Vorfäll gezielt ginn.

Wou een gedeele Runner muss bleiwen, test Feeler an Ofbriech esou suergfältig wéi déi gelungen Kopie. Den Test soll weisen, wat den nächsten Job gesinn hätt, wann dësen op halwem Wee ofgebrach gi wier. Een Job ass fäerdeg, wann säin Zougang a säin temporären Zoustan eriwwer sinn, net wann de Kopéierkommando null zréckgëtt.

Ähnlech Artikelen