CI రన్నర్ VPN: టన్నెల్ build కంటే ఎక్కువ కాలం నిలుస్తుందా?
పంచుకున్న CI రన్నర్ ఉద్యోగాల మధ్య మార్గాలను, ప్రక్రియలను ఉంచుకుంటుంది. VPN ముందు, మధ్య, తర్వాత స్థితులను ప్లాన్ చేయండి, ఉద్యోగానికి సొంతమైన కనెక్షన్ను మాత్రమే శుభ్రం చేయండి.
ఒక డిప్లాయ్మెంట్ ఉద్యోగం కనెక్ట్ అవుతుంది, తన artifact ను కాపీ చేస్తుంది, విజయాన్ని నివేదిస్తుంది. అది తెరిచిన టన్నెల్ తర్వాతి ఉద్యోగం ప్రారంభమయ్యేటప్పుడు కూడా పని చేస్తుండవచ్చు, అది మార్చిన మార్గం మొత్తం హోస్ట్కు చెందుతుంది. build ఫలితం ఆదేశాన్ని వివరిస్తుంది, అది వదిలిన స్థితిని కాదు. VPN ను జీవితకాలం ఉన్న వనరుగా పరిగణించండి, దశ ప్రారంభంలో ఒక వరుసగా కాదు.
ఈ హోస్ట్పై ఇంకా ఏమి నడుస్తుంది
Jenkins నోడ్ ఒకేసారి అనేక ఎగ్జిక్యూటర్లను నడపగలదు, హోస్ట్ మార్గాలు, resolver సెట్టింగ్లు లేదా వ్యవస్థ-వ్యాప్త కనెక్షన్ను మార్చే ఉద్యోగం వాటిని అందరికీ మారుస్తుంది. మరో ఉద్యోగం దాన్ని గమనిస్తుందా అనేది మార్గం, ఫిల్టరింగ్ విధానంపై ఆధారపడి ఉంటుంది, VPNల గురించిన సాధారణ నియమంపై కాదు. రిపాజిటరీ యాక్సెస్, artifact యాక్సెస్, కంట్రోల్ ఛానెల్ రన్నర్కు ఇంకా అవసరమైన వేర్వేరు అవసరాలు. పూర్తి టన్నెల్ ఎంచుకునే ముందు వాటిని డిప్లాయ్మెంట్ గమ్యాల జాబితాలో చేర్చండి.
కంట్రోల్ ఛానెల్ టన్నెల్ గుండా వెళ్లాల్సి ఉంటే, డిజైన్ దాన్ని ఉద్దేశపూర్వకంగా చెప్పాలి. rollback సమయంలో దాన్ని కనుగొనడం ప్లాన్ కాదు. రెండు జాబితాలు రాయండి: ఉద్యోగం ప్రైవేట్గా చేరాల్సినది ఏమిటి, రన్నర్ ఏదేమైనా చేరాల్సినది ఏమిటి.
ఈ ఉద్యోగానికి ప్రైవేట్ యాక్సెస్ అసలు అవసరమా?
టన్నెల్ జోడించే ముందు build దశకు అది అవసరమా అని అడగండి. ప్రైవేట్ డిప్లాయ్మెంట్ ఏజెంట్ ఆమోదించిన artifact ను పొంది డిప్లాయ్మెంట్ చేయగలదు, ఇది సాధారణ 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 |
అంకితమైన లేదా ఒకసారి వాడే ఏజెంట్ ఆ సరిహద్దులను అమలు చేయడం సులభతరం చేస్తుంది. Container లేదా namespace దాని నెట్వర్క్, ప్రత్యేక హక్కుల ఏర్పాటు మార్పును నిజంగా వేరుచేస్తేనే సహాయపడుతుంది.
ప్రోగ్రామ్ను కాదు, కనెక్షన్ను ఆపండి
ఈ ఉద్యోగం ప్రారంభించిన కనెక్షన్ను మూసివేయడానికి, దాని తాత్కాలిక ఆధారాలను తొలగించడానికి pipeline యొక్క ముగింపు మార్గంను ఉపయోగించండి. ఇతర ఉద్యోగాలు వాడే హోస్ట్లో ప్రోగ్రామ్ పేరుతో ప్రక్రియలను సరిపోల్చవద్దు; నిర్దిష్ట కనెక్షన్ను ఆపండి. క్రింది రెండు ఆదేశాలే మొత్తం శుభ్రత, రెండూ ప్రక్రియను కనుగొనడంపై ఆధారపడవు.
vpn-cli disconnect --profile "$PROFILE"
rm -f "$RUNNER_TEMP/client.key"
ముగింపు వేరుచేయడం కాదు: చనిపోయే రన్నర్ తాను తెరిచిన టన్నెల్ను ఉంచుకుంటుంది, బలవంతంగా ఆపిన ప్రక్రియ ఆ బ్లాక్ను పూర్తిగా దాటేస్తుంది. అందుకే శుభ్రత ఆదేశం ఒక్కటే మొత్తం డిజైన్ కాజాలదు. ఆచరణలో ఇది ఇలా విఫలమవుతుంది: డిప్లాయ్మెంట్ ఉద్యోగం కాపీ దశలో రద్దవుతుంది, ముగింపు బ్లాక్ ఎప్పుడూ నడవదు, అదే హోస్ట్పై తదుపరి ఉద్యోగం సజీవమైన టన్నెల్తో, అది చేరుకోలేని నెట్వర్క్ వైపు చూపే మార్గంతో ప్రారంభమవుతుంది. వైఫల్యం తదుపరి buildలో 'DNS' సమస్యలా కనిపిస్తుంది, దానికి కారణమైన ఉద్యోగం ముగిసిన గంటల తర్వాత.
ప్రొఫైల్ పేరును, ఆధారాల మార్గాన్ని ఉద్యోగం అవుట్పుట్లో నమోదు చేయండి. గుర్తింపు లేని కేవలం డిస్కనెక్ట్ ఆదేశాన్ని తర్వాత ఆడిట్ చేయడం కష్టం. తర్వాత విచారణ అడిగినప్పుడు బ్లాక్ నడిచిందని నిరూపించేది కూడా log వరుసే.
మరెవరూ వాడని హోస్ట్ను ఉద్యోగానికి ఇవ్వండి
ఒకసారి వాడే మౌలిక సదుపాయం వారసత్వ సమస్యను నిర్వహించడం కాకుండా తొలగిస్తుంది. ప్రతి ఉద్యోగానికి కొత్త ఏజెంట్ మార్గం, ప్రొఫైల్, ఇతరుల ఆధారాలు లేకుండా ప్రారంభమవుతుంది, దాని నాశనం ఉద్యోగం వదిలినదాన్ని శుభ్రం చేస్తుంది. ఇది ప్రతి buildకు ఎక్కువ ఖర్చవుతుంది, శుభ్రత కోడ్పై ఆధారపడని సరిహద్దు యొక్క నిజాయితీ ధర అదే. ఉత్పత్తి నెట్వర్క్లను తాకే ఉద్యోగాలకు, సంఘటనలను లెక్కించిన తర్వాత ఇది సాధారణంగా చౌక ఎంపిక.
పంచుకున్న రన్నర్ ఉండాల్సిన చోట, వైఫల్యాన్ని, రద్దును విజయవంతమైన కాపీలాగే జాగ్రత్తగా పరీక్షించండి. ఇది మధ్యలో రద్దైతే తదుపరి ఉద్యోగం ఏమి చూస్తుందో పరీక్ష చూపాలి. ఉద్యోగం ముగిసేది దాని యాక్సెస్, తాత్కాలిక స్థితి ముగిసినప్పుడే, కాపీ ఆదేశం సున్నా ఇచ్చినప్పుడు కాదు.