CI රනර් VPN: ටනෙලය build එකට වඩා දිගු කලක් පවතීද?
හවුල් CI රනර් එකක් කාර්යයන් අතර මාර්ග සහ ක්රියාවලි රඳවා ගනී. VPN එකේ පෙර, අතරතුර සහ පසු තත්ත්ව සැලසුම් කරන්න, සහ කාර්යයට අයත් සම්බන්ධතාවය පමණක් පිරිසිදු කරන්න.
යෙදවීමේ කාර්යයක් සම්බන්ධ වී, එහි ආටිෆැක්ට් එක පිටපත් කර, සාර්ථකත්වය වාර්තා කරයි. එය විවෘත කළ ටනෙලය ඊළඟ කාර්යය ආරම්භ වන විටත් ක්රියාත්මක විය හැක, එය වෙනස් කළ මාර්ගය මුළු හොස්ට් එකටම අයත් වේ. build ප්රතිඵලයක් විස්තර කරන්නේ විධානයයි, එය ඉතිරි කළ තත්ත්වය නොවේ. VPN එක ජීවිත කාලයක් සහිත සම්පත්රයක් ලෙස සලකන්න, අදියරක ආරම්භයේ එක් පේළියක් ලෙස නොව.
මෙම හොස්ට් එකේ තවත් මොනවා ක්රියාත්මක වේද
Jenkins නෝඩයකට එකවර ධාවක කිහිපයක් ක්රියාත්මක කළ හැක, හොස්ට් මාර්ග, resolver සැකසුම් හෝ පද්ධති-පරිමාණ සම්බන්ධතාවයක් වෙනස් කරන කාර්යයක් ඒවා සියලු දෙනාටම වෙනස් කරයි. වෙනත් කාර්යයක් එය දකීද යන්න රඳා පවතින්නේ මාර්ග සහ පෙරහන් ප්රතිපත්තිය මත මිස VPN ගැන පොදු නියමයක් මත නොවේ. ගබඩා ප්රවේශය, ආටිෆැක්ට් ප්රවේශය සහ පාලන චැනලය රනර් එකට තවමත් අවශ්ය වෙනම අවශ්යතා වේ. සම්පූර්ණ ටනෙලයක් තෝරා ගැනීමට පෙර ඒවා යෙදවීමේ ගමනාන්ත ලැයිස්තුවට එකතු කරන්න.
පාලන චැනලය ටනෙලය හරහා යා යුතු නම්, නිර්මාණය එය දැනුවත්ව ප්රකාශ කළ යුතුය. පසුගමනයක් අතරතුර එය සොයා ගැනීම සැලසුමක් නොවේ. ලැයිස්තු දෙක ලියන්න: කාර්යය පෞද්ගලිකව ළඟා විය යුතු දේ සහ රනර් එක කෙසේ හෝ ළඟා විය යුතු දේ.
මෙම කාර්යයට පෞද්ගලික ප්රවේශයක් අවශ්යද?
ටනෙලය එකතු කිරීමට පෙර build අදියරට එය අවශ්යදැයි අසන්න. පෞද්ගලික යෙදවීමේ නියෝජිතයෙකුට අනුමත ආටිෆැක්ට් එකක් ලබාගෙන යෙදවීම සිදු කළ හැක, එයින් පොදු build අදියර පෞද්ගලික ජාලයෙන් පිටත තබයි. එම වෙන් කිරීම සාමාන්යයෙන් ලාභදායී වන්නේ සෑම build පියවරකටම ටනෙලය හරහා යාම උගන්වනවාට වඩාය.
සීමාව තෝරන්නේ පුරුද්දෙන් නොව වැඩ ප්රවාහයෙනි. පිළිතුර නැත නම්, මෙම පිටුවේ ඉතිරිය අනවශ්ය වේ, එය ලබා ගත හැකි හොඳම ප්රතිඵලයයි.
ඊළඟ කාර්යය උරුම වන තත්ත්වය
කාර්යයට පෙර, එය පෞද්ගලික ප්රවේශය දරන අතරතුර සහ එය අවසන් වූ පසු, අවලංගු කිරීම ඇතුළුව, සත්ය විය යුතු දේ විස්තර කරන්න. අවසන් තත්ත්වය බොහෝ විට ව්යක්තව ඉතිරි වන එකයි, එයම ඊළඟ කාර්යයට උරුම වේ. එය කෙනෙකුගේ මතකයේ තැබීම වෙනුවට pipeline එක අසල ලියන්න.
| 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 |
කැපවූ හෝ එක්-භාවිත නියෝජිතයෙකු එම සීමා ක්රියාත්මක කිරීම පහසු කරයි. කන්ටේනරයක් හෝ namespace එකක් උපකාරී වන්නේ එහි ජාල හා වරප්රසාද වින්යාසය ඇත්තෙන්ම වෙනස හුදකලා කරන්නේ නම් පමණි.
වැඩසටහන නොව සම්බන්ධතාවය නවත්වන්න
මෙම කාර්යය ආරම්භ කළ සම්බන්ධතාවය වසා දැමීමට සහ එහි තාවකාලික අක්තපත්ර ඉවත් කිරීමට pipeline එකේ අවසන් කිරීමේ මාර්ගය භාවිත කරන්න. වෙනත් කාර්යයන් භාවිත කරන හොස්ට් එකක වැඩසටහන් නාමයෙන් ක්රියාවලි නොගළපන්න; නිශ්චිත සම්බන්ධතාවය නවත්වන්න. පහත විධාන දෙක මුළු පිරිසිදු කිරීමයි, දෙකම ක්රියාවලියක් සොයා ගැනීම මත රඳා නොපවතී.
vpn-cli disconnect --profile "$PROFILE"
rm -f "$RUNNER_TEMP/client.key"
අවසන් කිරීම හුදකලා කිරීම නොවේ: මිය යන රනර් එකක් එය විවෘත කළ ටනෙලය රඳවා ගනී, බලයෙන් නවතා දමන ක්රියාවලියක් කොටස සම්පූර්ණයෙන් මඟ හරියි. ඒ නිසා පිරිසිදු කිරීමේ විධානය පමණක් මුළු නිර්මාණය විය නොහැක. ප්රායෝගිකව එය අසාර්ථක වන්නේ මෙහෙමයි: යෙදවීමේ කාර්යයක් පිටපත් කිරීමේ පියවරේදී අවලංගු වේ, අවසන් කිරීමේ කොටස කිසිසේත් ක්රියාත්මක නොවේ, එම හොස්ට් එකේම ඊළඟ කාර්යය ජීවමාන ටනෙලයක් සහ එයට ළඟා විය නොහැකි ජාලයකට යොමු වන මාර්ගයක් සමඟ ආරම්භ වේ. අසාර්ථකත්වය පෙනෙන්නේ ඊළඟ build එකේ 'DNS' ගැටලුවක් ලෙසය, එය ඇති කළ කාර්යය අවසන් වී පැය ගණනකට පසුව.
කාර්යයේ ප්රතිදානයේ පැතිකඩ නාමය සහ අක්තපත්ර මාර්ගය සටහන් කරන්න. හඳුනාගැනීමක් නැති හිස් විසන්ධි වීමේ විධානයක් පසුව විගණනය කිරීම අපහසුය. පසුකාලීන පරීක්ෂණයක් අසන විට කොටස ක්රියාත්මක වූ බව ඔප්පු කරන්නේද ලොග් පේළියයි.
වෙන කිසිවෙකු භාවිත නොකරන හොස්ට් එකක් කාර්යයට දෙන්න
එක්-භාවිත යටිතල පහසුකම් උරුම ගැටලුව කළමනාකරණය නොකර ඉවත් කරයි. සෑම කාර්යයකටම නව නියෝජිතයෙකු මාර්ගයක්, පැතිකඩක් සහ වෙනත් කෙනෙකුගේ අක්තපත්ර නොමැතිව ආරම්භ වේ, එහි විනාශය කාර්යය ඉතිරි කළ සියල්ල පිරිසිදු කරයි. එය සෑම build එකකටම වැඩි මිලක් ගෙවයි, සහ එය පිරිසිදු කිරීමේ කේතය මත රඳා නොපවතින සීමාවක සත්ය මිලයි. නිෂ්පාදන ජාල ස්පර්ශ කරන කාර්යයන් සඳහා, සිද්ධීන් ගණන් කළ පසු එය සාමාන්යයෙන් ලාභදායී විකල්පයයි.
හවුල් රනර් එකක් රැඳිය යුතු තැන, සාර්ථක පිටපත් කිරීම මෙන්ම අසාර්ථකත්වය සහ අවලංගු කිරීම එසේම පරීක්ෂා කරන්න. මෙය අතරමගදී අවලංගු කළහොත් ඊළඟ කාර්යය දකින දේ පරීක්ෂණය පෙන්විය යුතුය. කාර්යයක් අවසන් වන්නේ එහි ප්රවේශය සහ තාවකාලික තත්ත්වය අවසන් වූ විටය, පිටපත් කිරීමේ විධානය බිංදුව ලබා දෙන විට නොවේ.