Արդյո՞ք OpenVPN-ի up սկրիպտը շատ շուտ գործարկվեց, թե՞ երբևէ պատրաստ չեղավ։
up կեռիկը գործարկվում է, երբ հայտնվում է թունելի սարքը՝ մինչև երթուղիներն ու հավելվածների պատրաստվածությունը։ Համապատասխանեցրե՛ք սկրիպտը իրեն անհրաժեշտ իրադարձությանը՝ քնի ավելացման փոխարեն։
up սկրիպտը գործարկվում է, դուրս է գալիս զրոյով, և դրա ներսում եղած առաջադրանքը չի հասնում մի մասնավոր ծառայության, որը երկու վայրկյան անց տերմինալից կատարյալ աշխատում է։ Բնազդը ժամանակացույցն է, և սովորական ուղղումը քունն է, որը թաքցնում է մրցավազքը՝ առանց այն հասկանալու։ Ավելի օգտակար ընթերցումն այն է, որ «up»-ը կեռիկի անուն է, ոչ թե պատրաստվածության երաշխիք։ Այն բռնկվում է, երբ թունելի սարքը կարգավորվում է, ինչը ավելի վաղ է, քան երթուղիները, DNS-ը և անշուշտ ավելի վաղ, քան թունելի հետևում գտնվող ցանկացած հավելված։
Կեղևի թեստը հաջողվեց, որովհետև այն գործարկվեց այն բանից հետո, երբ ամեն ինչ հաստատվեց։ Կեռիկը գործարկվեց մեկ կոնկրետ պահի։
Որտեղ է up-ը գտնվում մեկնարկի հերթականության մեջ
OpenVPN կարգավորում է թունելի սարքը և հետո գործարկում up կեռիկը։ Երթուղիների տեղադրումը ավելի ուշ փուլ է, և այն ունի իր սեփական կեռիկը, ինչի պատճառով up-ում տեղադրված երթուղուց կախված առաջադրանքը կարող է տեսնել սարք առանց օգտակար ուղու։ Տեղադրեք երթուղիների աշխատանքը route-up-ում, և ժամանակի խնդիրը սովորաբար անհետանում է։
Ձեռնարկը փաստագրում է այս հերթականությունը և այն միջավայրը, որը ստանում է յուրաքանչյուր կեռիկ։ Այս հերթականությունը դասական «աշխատում է իմ կեղևից» հաշվետվության ամբողջ բացատրությունն է, և դա է նաև պատճառը, որ նույն սկրիպտը կարող է անցնել մի մեքենայում և ձախողվել մյուսում՝ ավելի դանդաղ երթուղային փուլով։ Արդյունքներից ոչ մեկը ոչինչ չի ասում սկրիպտի որակի մասին։
DNS-ի և հավելվածների պատրաստվածությունը գալիս է նույնիսկ ավելի ուշ։ Նույնիսկ տեղադրված երթուղիները ապացույց չեն, որ հեռավոր ծայրը լսում է, որ անունը լուծվում է, կամ որ օգտվողին կապված առաջադրանքի համար գոյություն ունի աշխատասեղանի սեսիա։
Ինչ է իրականում ժառանգում կեռիկը
Կեռիկը գործարկվում է OpenVPN գործընթացի հաշվի և միջավայրի ներքո, ինչը նույնը չէ, ինչ ձեր ինտերակտիվ կեղևը։ Նրան կարող են պակասել օգտվողի սեսիայի ավտոբուսը, աշխատասեղանի միջավայրը կամ հավատարմագրեր, որոնք բացվում են միայն մուտք գործելիս։ Գրեք, թե դրանցից որոնք է առաջադրանքն իրականում կարիք ունենում։
Դա կարևոր է առաջադրանքների համար, որոնք ցանցային են թվում, բայց կախված են օգտվողի համատեքստից՝ օգտվողի հավատարմագրով համօգտագործման միացում, յուրաքանչյուր օգտվողի համար պրոքսիի կարգավորում կամ տպիչի կարգավորում։ Արտոնյալ թունելային կեռիկը նրանց համար սխալ տեղ է, և ոչ մի քանակի սպասում չի շտկում բացակայող սեսիան։
Երբ առաջադրանքը ձախողվում է կեռիկում, գրանցեք հաշիվը, միջավայրը և առաջին ձախողված գործողությունը։ Դա առանձնացնում է վաղաժամ ժամանակացույցը թույլտվության կամ համատեքստի խնդրից, և երկուսն ունեն բոլորովին տարբեր ուղղումներ։ Նրանց միջև գուշակելը հինգ րոպեանոց ուղղումը դարձնում է ամբողջ կեսօր։
Ինչու քուն ավելացնելը պատրաստվածության ստուգում չէ
Քունը ուշացնում է սկրիպտը և տեղափոխում մրցավազքի պատուհանը։ Արագ օրը առաջադրանքը հաջողվում է, դանդաղ օրը այն նորից ձախողվում է, և ձախողումը դժվարանում է վերարտադրել, որովհետև ուշացումը կարծես աշխատում է։ Ուշացումը, որ աշխատում է միայն թեթև ծանրաբեռնվածության տակ, պատահականություն է, ոչ թե ուղղում։
Եթե կախվածությունը երթուղի է, օգտագործեք երթուղու տեղադրմանը համապատասխան կեռիկը։ Եթե կախվածությունը թունելի հետևում գտնվող ծառայություն է, օգտագործեք սահմանափակ ստուգում, որը սպասում է հենց այդ պայմանին և հստակ ձախողվում է, երբ այն երբեք չի գալիս։
Ձախողումը պահեք բացահայտ։ Կեռիկը, որը դուրս է գալիս զրոյով, մինչդեռ նրա իրական աշխատանքը ձախողվել է, ավելի վատ է, քան ձախողվող կեռիկը, որովհետև ծառայության կառավարիչը գրանցում է հաջողություն, և ոչ ոք այլևս չի նայում։ Սկրիպտից եկող տողը տեղեկամատյանում ամենաէժան միջոցն է դա ազնիվ պահելու համար։
Մաքրումը և վերամիացումը նույն խնամքին են արժանի
Սկրիպտը, որը փոխում է ընդհանուր վիճակ, պահանջում է համապատասխան հետադարձ ուղի։ Կեռիկի ավելացրած երթուղիները, լուծիչի գրառումները և հրապատի նշանները պետք է լինեն իդեմպոտենտ և հետշրջելի, հակառակ դեպքում վերամիացումը երկրորդ պատճենը կկուտակի առաջինի վրա։
Վերամիացումները կարող են նաև կեռիկները գործարկել ավելի հաճախ, քան ծառայության ամբողջական մեկնարկը։ Մշտական ինտերֆեյսը, որը վերականգնում է սեսիան, կարող է նորից առաջացնել up և route-up ցիկլը, ուստի սկրիպտը, որը ենթադրում է մեկ գործարկում յուրաքանչյուր բութի համար, ի վերջո սխալ կվարվի։ Հաշվեք գործարկումները տեղեկամատյանում մեկ օրվա թրթռման ընթացքում՝ տեսնելու, թե իրականում որքան հաճախ է այն աշխատում։ Ապա դարձրեք սկրիպտը անվտանգ այդքան անգամ աշխատելու համար։
Փորձարկեք այն կյանքի ցիկլը, որը ձախողվեց, ոչ թե ավելի ուշ հրամանը։ Վերարտադրեք բութը կամ վերամիացումը, դիտեք կեռիկի գործարկումը և հաստատեք, որ առաջադրանքը հաջողվել է հենց այն պահին, երբ այն իրականում աշխատում է։ Հետագայում ինտերակտիվ կեղևից ստացված հաջողությունը ապացույց է կախվածության մասին, ոչ թե ապացույց, որ մեկնարկի ուղին աշխատում է։
Անվանեք այն իրադարձությունը, որից կախված է յուրաքանչյուր առաջադրանք, ապա կապեք այն այդ իրադարձությանը։ Մնացած ամեն ինչ ուշացում է, որը ձևացնում է, թե ստուգում է։