Xogħol ta' deploy jgħaqqad, jikkopja l-artefatt tiegħu u jirrapporta suċċess. It-tunnel li fetaħ jista' jkun għadu ħaj meta jibda x-xogħol li jmiss, u r-rotta li bidel tappartjeni lill-host kollu. Riżultat ta' build jiddeskrivi l-kmand, mhux l-istat li ħalla warajh. Ittratta l-VPN bħala riżors b'ħajja, mhux bħala linja waħda fil-bidu ta' stadju.

X'ieħor jaħdem fuq dan il-host

Node Jenkins jista' jħaddem bosta eżekuturi fl-istess ħin, u xogħol li jbiddel rotot tal-host, is-settings tar-resolver jew konnessjoni madwar is-sistema jbiddilhom għal kulħadd. Jekk xogħol ieħor jinnotahx jiddependi mill-politika tar-rotot u l-iffiltrar, mhux minn regola ġenerali dwar VPNs. L-aċċess għall-repożitorju, l-aċċess għall-artefatti u l-kanal ta' kontroll huma rekwiżiti separati li r-runner għad għandu bżonn. Żidhom mal-lista tad-destinazzjonijiet tad-deploy qabel ma tagħżel tunnel sħiħ.

Jekk il-kanal ta' kontroll għandu jaqsam it-tunnel, id-disinn irid jgħid dan b'ħsieb. Li tiskoprih waqt rollback mhix pjan. Ikteb iż-żewġ listi: x'irid jilħaq ix-xogħol b'mod privat, u x'irid jilħaq ir-runner tkun kif tkun.

Dan ix-xogħol għandu bżonn aċċess privat xejn?

Staqsi qabel ma żżid it-tunnel jekk l-istadju tal-build għandux bżonnu. Aġent tad-deploy privat jista' jġib artefatt approvat u jagħmel id-deploy, li jżomm l-istadju ġenerali tal-build barra min-netwerk privat. Dak l-iffissar huwa normalment irħas milli tgħallem kull pass tal-build jimxi minn tunnel.

Agħżel il-fruntiera mill-fluss tax-xogħol, mhux mid-drawwa. Jekk it-tweġiba hija le, il-bqija ta' din il-paġna hija bla bżonn, u dan huwa l-aħjar riżultat disponibbli.

L-istat li jiret ix-xogħol li jmiss

Iddeskrivi x'għandu jkun minnu qabel ix-xogħol, waqt li jkollu aċċess privat u wara li jispiċċa, inkluż it-tħassir. L-istat finali huwa dak li l-aktar spiss jibqa' impliċitu, u huwa dak li jiret ix-xogħol li jmiss. Iktbu ħdejn il-pipeline minflok ma tħallih fil-memorja ta' xi ħadd.

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

Aġent iddedikat jew li jintrema darba jagħmel dawk il-fruntieri aktar faċli biex jiġu infurzati. Container jew namespace jgħin biss jekk it-tħejjija tan-netwerk u tal-privileġġi tiegħu tabilħaqq tiżola l-bidla.

Waqqaf il-konnessjoni, mhux il-programm

Uża l-moggħodija tal-finalizzazzjoni tal-pipeline biex tagħlaq il-konnessjoni li dan ix-xogħol beda u tneħħi l-kredenzjali temporanji tiegħu. Tqabbelx proċessi bl-isem tal-programm fuq host li jużawh xogħlijiet oħra; waqqaf il-konnessjoni speċifika minflok. Iż-żewġ kmandi hawn taħt huma t-tindif kollu, u ħadd minnhom ma jiddependi milli jsib proċess.

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

Il-finalizzazzjoni mhix iżolament: runner li jmut iżomm it-tunnel li fetaħ, u proċess li jitwaqqaf bilfors jaqbeż il-blokka għal kollox. Għalhekk il-kmand tat-tindif waħdu ma jistax ikun id-disinn kollu. Hawn kif ifalli fil-prattika: xogħol ta' deploy jitħassar fil-pass tal-kopja, il-blokka tal-finalizzazzjoni qatt ma taħdem, u x-xogħol li jmiss fuq l-istess host jibda b'tunnel ħaj u rotta li tindika lejn netwerk li ma jistax jilħaq. Il-falliment jidher bħala problema tad-'DNS' fil-build li jmiss, sigħat wara li xogħol li kkaġunah jispiċċa.

Irreġistra l-isem tal-profil u l-mogħdija tal-kredenzjali fl-output tax-xogħol. Kmand ta' skonnessjoni nieqes minn identifikatur huwa diffiċli biex jiġi awditjat wara. Il-linja tal-log hija wkoll dik li tipprova li l-blokka ħadmet meta investigazzjoni aktar tard tistaqsiha.

Agħti lix-xogħol host li ħadd ieħor ma juża

Infrastruttura li tintrema telimina l-problema tal-wirt minflok ma timmaniġġjaha. Aġent ġdid għal kull xogħol jibda mingħajr rotta, mingħajr profil u mingħajr kredenzjali ta' ħadd ieħor, u l-qerda tiegħu tnaddaf dak li ħalla x-xogħol. Dan jiswa aktar għal kull build, u huwa l-prezz onest ta' fruntiera li ma tiddependix mill-kodiċi tat-tindif. Għal xogħlijiet li jmissu netwerks tal-produzzjoni, normalment huwa l-għażla irħas ladarba l-inċidenti jingħaddu.

Fejn runner kondiviż irid jibqa', ipprova l-falliment u t-tħassir bl-istess attenzjoni bħall-kopja li tirnexxi. L-ittestjar għandu juri x'kien jara x-xogħol li jmiss li dan kien jitħassar fin-nofs. Xogħol ikun lest meta l-aċċess u l-istat temporanju tiegħu jkunu spiċċaw, mhux meta l-kmand tal-kopja jirritorna żero.

Artikli relatati