Inplementazio lan batek konektatu, bere artefaktua kopiatu eta arrakasta jakinarazten du. Ireki zuen tuneletik martxan egon daiteke hurrengo lana hasten denean, eta aldatu zuen ibilbidea host osoarena da. Build emaitzak komandoa deskribatzen du, ez atzean utzi zuen egoera. Tratatu VPNa bizitza duen baliabide gisa, ez etapa baten hasierako lerro bakar gisa.

Zer gehiago dabil host honetan

Jenkins nodo batek hainbat exekutzaile aldi berean exekuta ditzake, eta hostaren ibilbideak, resolver ezarpenak edo sistema osoko konexioa aldatzen dituen lan batek guztiontzat aldatzen ditu. Beste lan batek hori nabarituko duen ibilbide eta iragazketa politikaren araberakoa da, ez VPNei buruzko arau orokor baten araberakoa. Biltegirako sarbidea, artefaktuetarako sarbidea eta kontrol kanala runnerrak oraindik behar dituen baldintza bereiziak dira. Gehitu itzazu inplementazio helmugen zerrendan tunel osoa aukeratu aurretik.

Kontrol kanalak tunela zeharkatuko balu, diseinuak hori nahita esan behar du. Rollback batean hori aurkitzea ez da plan bat. Idatzi bi zerrendak: lanak pribatuki zer lortu behar duen eta runnerrak edozein kasutan zer lortu behar duen.

Behar du lan honek sarbide pribaturik?

Galdetu tunela gehitu aurretik build etapak behar duen. Inplementazio agente pribatu batek artefaktu onartu bat lortu eta inplementazioa egin dezake, eta horrek build etapa orokorra sare pribatutik kanpo uzten du. Banaketa hori normalean merkeagoa da build urrats bakoitzari tuneletik ibiltzen irakastea baino.

Aukeratu muga lan-fluxutik, ez ohituratik. Erantzuna ezezkoa bada, orri honetako gainerakoa alferrikakoa da, eta hori da eskuragarri dagoen emaitzarik onena.

Hurrengo lanak heredatzen duen egoera

Deskribatu zer izan behar duen egiaz lanaren aurretik, sarbide pribatua duen bitartean eta amaitu ondoren, bertan behera uztea barne. Amaierako egoera da isilen uzten dena gehienetan, eta hura da hurrengo lanak heredatzen duena. Idatzi pipelinearen ondoan, norbaiten memorian utzi beharrean.

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

Agente dedikatu edo erabilera bakarreko batek muga horiek betearaztea errazten du. Edukinak edo izen-espazioak soilik laguntzen du bere sare eta pribilegio antolamenduak aldaketa benetan isolatzen badu.

Gelditu konexioa, ez programa

Erabili pipelinearen amaiera bidea lan honek hasitako konexioa ixteko eta bere kredentzial iragankorrak kentzeko. Ez parekatu prozesuak programaren izenaren arabera beste lan batzuek erabiltzen duten host batean; gelditu konexio zehatza. Beheko bi komandoak garbiketa osoa dira, eta batek ere ez du prozesu bat aurkitzearen menpe.

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

Amaitzeak ez du isolatzen: hiltzen den runner batek ireki zuen tunela gordetzen du, eta indarrez gelditutako prozesu batek blokea oso-osorik saltatzen du. Horregatik garbiketa komandoak ezin du diseinu osoa izan. Hona nola huts egiten duen praktikan: inplementazio lan bat kopiatze urratsean bertan behera uzten da, amaiera blokea ez da inoiz exekutatzen, eta host bereko hurrengo lana tuneletik bizirik eta iritsi ezin duen sare batera doan ibilbide batekin hasten da. Hutsegitea hurrengo build-ean 'DNS' arazo bat dirudi, eragin zuen lana amaitu eta ordu batzuk geroago.

Erregistratu profilaren izena eta kredentzialaren bidea lanaren irteeran. Identifikatzailerik gabeko deskonexio komando soil bat zaila da geroago auditatzeko. Log lerroa da, halaber, blokea exekutatu zela frogatzen duena, geroagoko ikerketa batek hala eskatzen duenean.

Eman lanari inork erabiltzen ez duen host bat

Azpiegitura erabilgaitzak herentzia arazoa kentzen du, kudeatu beharrean. Lan bakoitzeko agente berri bat ibilbiderik, profilik eta beste inoren kredentzialik gabe hasten da, eta haren suntsiketak lanak utzitakoa garbitzen du. Horrek gehiago kostatzen du build bakoitzeko, eta garbiketa kodeari menpe ez dagoen muga baten benetako prezioa da. Ekoizpen sareak ukitzen dituzten lanei dagokienez, normalean aukera merkeena da gorabeherak zenbatuta.

Runner partekatuak egon behar duen lekuetan, probatu huts egitea eta bertan behera uztea arrakastatsua den kopiaketa bezain arretaz. Proba honek erakutsi beharko luke hurrengo lanak zer ikusiko lukeen, hau erdibidean bertan behera utziko balitz. Lana egina dago haren sarbidea eta egoera iragankorra amaitu direnean, ez kopiatze komandoak zero itzultzen duenean.

Erlazionatutako artikuluak