In deploytaak ferbynt, kopiearret syn artefakt en meldt súkses. De tunnel dy't er iepene hat, kin noch oan wêze as de folgjende taak begjint, en de rûte dy't er feroare hat, heart by de hiele host. In buildresultaat beskriuwt it kommando, net de tastân dy't it efterlitten hat. Behannelje de VPN as in boarne mei in libbensdoer, net as ien rigel oan it begjin fan in stap.

Wat der noch mear op dizze host draait

In Jenkins-node kin ferskate útfierders tagelyk draaie, en in taak dy't hostrûtes, resolverynstellingen of in systeembrede ferbining feroaret, feroaret se foar elkenien. Oft in oare taak dat merkt, hinget fan it rûte- en filterbelied ôf, net fan in algemiene regel oer VPN's. Tagong ta de repository, tagong ta artefakten en it kontrôlekanaal binne aparte easken dy't de runner noch altyd nedich hat. Foegje se ta oan 'e list fan deploybestimmingen foardat jo in folsleine tunnel kieze.

As it kontrôlekanaal de tunnel oerstekke soe, moat it ûntwerp dat bewust sizze. It ûntdekke by in weromrôljen is gjin plan. Skriuw de twa listen op: wat de taak privee berikke moat, en wat de runner allegear berikke moat.

Hat dizze taak eins privee tagong nedich?

Freegje foardat jo de tunnel tafoegje oft de buildstap dy nedich hat. In privee deployagent kin in goedkard artefakt helje en de deploy útfiere, wat de algemiene buildstap bûten it privee netwurk hâldt. Dy splitsing is meastal goedkeaper as elke buildstap leare om troch in tunnel te rûten.

Kies de grins út 'e wurkstream, net út 'e gewoante. As it antwurd nee is, is de rest fan dizze side oerstallich, en dat is it bêste resultaat dat der is.

De tastân dy't de folgjende taak erft

Beskriuw wat wier wêze moat foar de taak, wylst dy privee tagong hat, en nei't dy einiget, ynklusyf annulearring. De eintastân is dejinge dy't it meast ûnsein litten wurdt, en dat is dejinge dy't de folgjende taak erft. Skriuw it njonken de pipeline del ynstee fan it yn immen syn ûnthâld te litten.

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

In tawijde of weismietbere agent makket dy grinzen makliker te hanthavenjen. In kontener of nammeromte helpt allinnich as de netwurk- en foechynrjochting derfan de feroaring echt isolearret.

Stop de ferbining, net it programma

Brûk it finalisearjende paad fan 'e pipeline om de ferbining te sluten dy't dizze taak begûn is en syn tydlike bewiisstikken fuort te heljen. Pas gjin prosessen oan op programmanamme op in host dy't oare taken brûke; stop ynstee de spesifike ferbining. De twa kommando's hjirûnder binne it hiele opromjen, en net ien hinget ôf fan it finen fan in proses.

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

Finalisearjen is gjin isolaasje: in runner dy't stjert hâldt de tunnel dy't er iepene hat, en in proses dat mei geweld stoppe wurdt slacht it blok hielendal oer. Dêrom kin it opromkommando allinnich net it hiele ûntwerp wêze. Sa mislearret it yn 'e praktyk: in deploytaak wurdt annulearre by de kopiearstap, it finalisearjende blok draait nea, en de folgjende taak op deselde host begjint mei in libbene tunnel en in rûte dy't nei in netwurk wiist dat er net berikke kin. De flater liket op in 'DNS'-probleem yn 'e folgjende build, oeren nei't de taak dy't it feroarsake dien wie.

Skriuw de profylnamme en it paad fan 'e bewiisstikken yn 'e útfier fan 'e taak. In keale ôfskiedingskommando sûnder identifikaasje is letter dreech te auditearjen. De logrigel is ek wat bewissiget dat it blok draaid hat as in letter ûndersyk dat freget.

Jou de taak in host dy't nimmen oars brûkt

Weismietbere ynfrastruktuer hellet it erfenisprobleem fuort ynstee fan it te behearen. In nije agent per taak begjint sûnder rûte, sûnder profyl en sûnder bewiisstikken fan oaren, en it ferneatigjen derfan rommet op wat de taak efterlitten hat. Dat kostet mear per build, en it is de earlike priis foar in grins dy't net fan opromkoade ôfhinget. Foar taken dy't produksjenetwurken reitsje, is it meastal de goedkeapere opsje sadree't ynsidinten meiteld wurde.

Wêr't in dielde runner bliuwe moat, testje mislearring en annulearring like soarchfâldich as de suksesfolle kopy. De test moat sjen litte wat de folgjende taak sjen soe as dizze healwei annulearre waard. In taak is dien as syn tagong en tydlike tastân einige binne, net as it kopiearkommando nul weromjout.

Relatearre artikelen