VPN CI runner: ṣé tunnel máa wà pẹ́ ju build lọ?
CI runner tí wọ́n ń pín máa ń pa àwọn ọ̀nà àti ìlànà mọ́ láàrín àwọn iṣẹ́. Ṣètò àwọn ipò VPN ṣáájú, nígbà àti lẹ́yìn iṣẹ́, kí o sì fọ kìkì ìsopọ̀ tí iṣẹ́ náà ní.
Iṣẹ́ ìgbékalẹ̀ kan ń sopọ̀, ó ń da artifact rẹ̀, ó sì ń jábọ̀ àṣeyọrí. Tunnel tí ó ṣí lè ṣì wà nígbà tí iṣẹ́ tó ń bọ̀ bẹ̀rẹ̀, ọ̀nà tí ó yí padà sì jẹ́ ti gbogbo host. Èsì build ń ṣàpèjúwe àṣẹ, kì í ṣe ipò tí ó fi sílẹ̀. Wo VPN gẹ́gẹ́ bí ohun àmúlò tí ó ní ìgbésí ayé, kì í ṣe ìlà kan ní ìbẹ̀rẹ̀ ìpele.
Kí ni ó tún ń ṣiṣẹ́ lórí host yìí
Jenkins node lè máa ṣiṣẹ́ olùṣe mélòó kan lẹ́ẹ̀kan, iṣẹ́ tí ó yí àwọn ọ̀nà host, ètò resolver tàbí ìsopọ̀ gbogbo ẹ̀rọ padà yóò yí wọn padà fún gbogbo ènìyàn. Bóyá iṣẹ́ mìíràn yóò kíyèsí i dá lórí ìlànà ọ̀nà àti àlẹ̀mọ́, kì í ṣe lórí ìlànà gbogbogbò nípa VPN. Àǹfààní sí repository, àǹfààní sí artifact àti ọ̀nà ìṣàkóso jẹ́ àwọn ohun tí ó yàtọ̀ tí runner ṣì nílò. Fi wọ́n kún àkójọ ibi ìgbékalẹ̀ ṣáájú kí o tó yan tunnel kíkún.
Bí ọ̀nà ìṣàkóso bá máa gba tunnel kọjá, àpẹẹrẹ náà gbọ́dọ̀ sọ bẹ́ẹ̀ ní àmọ̀ọ́nú. Rí i nígbà ìdápadà kì í ṣe ètò. Kọ àwọn àkójọ méjì: ohun tí iṣẹ́ gbọ́dọ̀ dé ọ̀dọ̀ ní àdáni, àti ohun tí runner gbọ́dọ̀ dé ọ̀dọ̀ bó ti wù kó rí.
Ṣé iṣẹ́ yìí nílò àǹfààní àdáni rárá?
Bèèrè kí o tó fi tunnel kún i bóyá ìpele build nílò rẹ̀. Aṣojú ìgbékalẹ̀ àdáni lè gba artifact tí wọ́n fọwọ́ sí, ó sì ṣe ìgbékalẹ̀, èyí tí ó máa ń pa ìpele build gbogbogbò mọ́ ní òde nẹ́tíwọ́kì àdáni. Ìpín bẹ́ẹ̀ máa ń pọ́n ju kíkọ́ gbogbo ìgbésẹ̀ build láti gba tunnel kọjá lọ.
Yan ààlà náà láti inú ìlànà iṣẹ́, kì í ṣe láti inú àṣà. Bí ìdáhùn bá jẹ́ rárá, ìyókù ojú-ìwé yìí kò pọn dandan, ìyẹn sì ni èsì tí ó dára jùlọ tí ó wà.
Ipò tí iṣẹ́ tó ń bọ̀ yóò jogún
Ṣàpèjúwe ohun tí ó gbọ́dọ̀ jẹ́ òtítọ́ ṣáájú iṣẹ́, nígbà tí ó ní àǹfààní àdáni, àti lẹ́yìn tí ó parí, pẹ̀lú ìfagilé. Ipò ìparí ni èyí tí wọ́n máa ń fi sílẹ̀ láìsọ̀rọ̀ jùlọ, ìyẹn sì ni iṣẹ́ tó ń bọ̀ yóò jogún. Kọ ọ́ lẹ́gbẹ̀ẹ́ pipeline dípò kí o fi í sí ìrántí ẹnìkan.
| Moment | What proves it | What leaks if it is skipped |
|---|---|---|
| Job start: pre-flight route check | The route table shows no tunnel from an earlier job, and the profile list is empty | A stale route sends deployment traffic into a dead tunnel |
| Job end: disconnect and shred | The profile is down and the temporary key file is gone | The next job inherits an open tunnel and a usable credential |
| Cancelled job: reboot or disposal | The host is replaced or rebooted before the next job starts | A killed process leaves the tunnel up with no owner |
Aṣojú tí ó yà sọ́tọ̀ tàbí tí wọ́n ń lò lẹ́ẹ̀kan máa ń mú àwọn ààlà yẹn rọrùn láti fi àṣẹ. Container tàbí namespace máa ń ràn wọ́n lọ́wọ́ kìkì bí ètò nẹ́tíwọ́kì àti àǹfààní rẹ̀ bá ya ìyípadà náà sọ́tọ̀ ní tòótọ́.
Dá ìsopọ̀ dúró, kì í ṣe ètò náà
Lo ọ̀nà ìparí pipeline láti ti ìsopọ̀ tí iṣẹ́ yìí bẹ̀rẹ̀, àti láti yọ àwọn ẹ̀rí ìdánimọ̀ rẹ̀ tí ó wà fún ìgbà díẹ̀. Má ṣe fi orúkọ ètò dúró àwọn ìlànà lórí host tí àwọn iṣẹ́ mìíràn ń lò; dá ìsopọ̀ pàtó náà dúró. Àwọn àṣẹ méjì tí ó wà nísàlẹ̀ ni gbogbo ìfọ̀, kò sì sí èyí tí ó sinmi lórí wíwá ìlànà kan.
vpn-cli disconnect --profile "$PROFILE"
rm -f "$RUNNER_TEMP/client.key"
Ìparí kì í ṣe ìyàtọ̀: runner tí ó kú yóò pa tunnel tí ó ṣí mọ́, ìlànà tí wọ́n fi agbára dá dúró yóò sì forí ìdìná náà kọjá pátápátá. Ìdí nìyẹn tí àṣẹ ìfọ̀ nìkan kò lè jẹ́ gbogbo àpẹẹrẹ. Báyìí ni ó ń kùnà ní ìṣe: wọ́n fagilé iṣẹ́ ìgbékalẹ̀ kan ní ìgbésẹ̀ dídà, ìdìná ìparí kò ṣiṣẹ́ rárá, iṣẹ́ tó ń bọ̀ lórí host kan náà sì bẹ̀rẹ̀ pẹ̀lú tunnel alààyè àti ọ̀nà tí ó tọ́ka sí nẹ́tíwọ́kì tí kò lè dé. Ìkùnà náà dà bí ìṣòro 'DNS' nínú build tó ń bọ̀, wákàtí púpọ̀ lẹ́yìn tí iṣẹ́ tí ó fà á ti parí.
Kọ orúkọ profile àti ọ̀nà ẹ̀rí ìdánimọ̀ sínú èsì iṣẹ́. Àṣẹ ìgé tí kò ní ìdánimọ̀ kan ṣòro láti ṣàyẹ̀wò lẹ́yìn náà. Ìlà log pẹ̀lú ni ó ń fi hàn pé ìdìná náà ṣiṣẹ́ nígbà tí ìwádìí lẹ́yìn bá béèrè.
Fún iṣẹ́ náà ní host tí ẹlòmíràn kò lò
Àwọn ohun àmúlò tí wọ́n ń lò lẹ́ẹ̀kan máa ń yọ ìṣòro jogún kúrò dípò kí wọ́n máa bójú tó o. Aṣojú tuntun fún iṣẹ́ kọ̀ọ̀kan máa ń bẹ̀rẹ̀ láìsí ọ̀nà, láìsí profile àti láìsí ẹ̀rí ìdánimọ̀ ẹlòmíràn, ìparun rẹ̀ sì máa ń fọ ohunkóhun tí iṣẹ́ náà fi sílẹ̀. Ìyẹn máa ń náwó ju fún build kọ̀ọ̀kan, ìyẹn sì ni iye tòótọ́ fún ààlà tí kò sinmi lórí kóòdù ìfọ̀. Fún àwọn iṣẹ́ tí ó kan nẹ́tíwọ́kì ìmújáde, ó máa ń jẹ́ àyàn tí ó pọ́n jùlọ nígbà tí wọ́n bá ka àwọn ìṣẹ̀lẹ̀.
Níbi tí runner tí wọ́n pín gbọ́dọ̀ dúró, dán ìkùnà àti ìfagilé wò dáadáa bíi àṣeyọrí dídà. Ìdánwò náà gbọ́dọ̀ fi ohun tí iṣẹ́ tó ń bọ̀ yóò rí hàn bí wọ́n bá fagilé èyí ní àárín. Iṣẹ́ ti parí nígbà tí àǹfààní àti ipò ìgbà díẹ̀ rẹ̀ ti dópin, kì í ṣe nígbà tí àṣẹ dídà bá dá òdo padà.