Սխալ հաղորդող և շարունակող տրամադրման սկրիպտները վատն են, քան երբեք չաշխատող սկրիպտները։ Հաճախորդի կարգավորումը դիպչում է պաշտպանված բանալիների, դարպասի մոտ ինքնությանը և ծառայության, որը գուցե արդեն սպասարկում է երթևեկություն։ Նրանցից յուրաքանչյուրին պետք է կանգառի պայման, և սկրիպտը պետք է իմանա, թե որ փուլին հասավ, երբ կանգնեց։

Ամբողջը դիտարկիր որպես մեկ գործարք հինգ ստուգման կետերով, և թող յուրաքանչյուր ստուգման կետ ինքնուրույն հրաժարվի շարունակել։

Ուղղիր մուտքերը նախքան ֆայլային համակարգին դիպչելը

Սկսիր բացահայտ պայմանագրով՝ մեկ ինքնություն, մեկ պրոֆիլի աղբյուր, մեկ նախատեսված ծառայության սեփականատեր։ Ստուգիր, որ պրոֆիլը գոյություն ունի, որ վկայականն ու բանալին, որոնց այն հղում է, ընթեռնելի են, և որ նպատակային պանակը պատկանում է սպասվող փաթեթին։ Լուծվող ուղին ապացույց չէ, որ դրա ետևի նյութը ամբողջական է։

Մերժիր դատարկ փոփոխականները վաղ։ Չսահմանված $DEVICE, որը ոչնչի է ընդլայնվում, install -m 400 $KEY /etc/openvpn/client/-ը դարձնում է պանակին ուղղված պատճեն, և ձախողումը գալիս է ավելի ուշ որպես ծառայություն, որ չի կարող կարդալ իր բանալին։

Հավաքիր պրոֆիլների հավաքածուն նախապատրաստման պանակում

Նախ ամբողջական հավաքածուն կառուցիր մասնավոր տեղում՝ պրոֆիլ, CA, հաճախորդի վկայական, բանալի և ցանկացած օժանդակ, որին կանչում է պրոֆիլը։ Պատճենիր install -m 400 -o root -g root-ով, որպեսզի իրավունքները սահմանվեն ստեղծման պահին, ոչ դրանից հետո։ Ապա ստուգիր պրոֆիլի ներսի հղումները, որովհետև հարաբերական ca կամ key տողը լուծվում է միավորի աշխատանքային պանակի նկատմամբ, հենց ծառայությունը սկսվում է։ Ոչինչ չպետք է գրվի ակտիվ պանակում, քանի դեռ ամբողջ հավաքածուն չի վավերացվել։

Գրանցիր ոչ գաղտնի մատնահետք այն բանի, ինչ արտադրեց այս աշխատանքը, օրինակ տարբերակի նշիչի կողքին պահված sha256sum office.conf։ Հենց այդ մեկ արժեքն է թույլ տալիս կրկնակի աշխատանքին տարբերել թարմացումը ոչինչ չանելուց։

Փոխարինիր ատոմար և պահիր նախորդ հավաքածուն

Տեղափոխիր պատրաստված հավաքածուն իր տեղը մեկ գործողությամբ, որտեղ ֆայլային համակարգը թույլ է տալիս, և պահիր վերանայված նախորդ հավաքածուն ժամանակային նիշով անվան տակ։ Մասնակի պատճենը, որը հին բանալու կողքին թողնում է նոր պրոֆիլ, ստեղծում է ծառայություն, որ սխալ ինքնությամբ է վավերացվում և ոչ մի օգտակար բան չի գրանցում պատճառի մասին։ Եթե փոխարինումը չի կարող ատոմար լինել, դասավորիր տեղափոխություններն այնպես, որ պրոֆիլը վերջինը հասնի։

Երբ նպատակն արդեն գոյություն ունի, հստակ որոշիր՝ այս աշխատանքը թարմացում է, նույնական կրկնություն, թե բախում այլ սարքի պրոֆիլի հետ։ Այլ ինքնության պատկանող պրոֆիլը լուռ վերագրելը հենց այն ուղին է, որով երկու մեքենաներ սկսում են կիսել մեկ վկայական։ Փոխարենը մերժիր աշխատանքը և անվանիր բախվող սեփականատիրոջը։

Ակտիվացրու մեկ սեփականատեր և ապացուցիր

Ընտրիր ակտիվացման մեկ ուղի՝ կա՛մ systemd օրինակ, կա՛մ NetworkManager, և օգտագործիր այն հետևողականորեն։ Ակտիվացված միավորի կողքին չկառավարվող openvpn պրոցես սկսելը տալիս է երկու թունել, մրցակցող DNS թարմացումներ և հստակ պատասխան չկա, թե որին է ուղղված կանգառի հրամանը։ Ակտիվացումից հետո ստուգիր systemctl is-active openvpn-client@office-ը, ապա հեռավոր նախածանցի երթուղին, ապա resolvectl status-ը՝ թունելի տեղադրած լուծիչի համար։ Ավարտիր՝ հասնելով մեկ ռեսուրսի, որի համար գոյություն ունի թունելը։

Աշխատող պրոցեսը և կանաչ սկուտեղի պատկերակը պրոցեսի փաստեր են, ոչ ապացույց, որ ինքնությունն ու երթևեկության քաղաքականությունը վերապրել են հանձնումը։

Կրկնակի աշխատանքը և դուրսբերումը առանձին հոսքեր են

Երկրորդ աշխատանքը պետք է համընկնի նույն վերանայված ֆայլերին և նույն սեփականատիրոջը, ոչ թե ստեղծի երկրորդ հաշիվ կամ երկրորդ դեմոն։ Դուրսբերումն իր ընթացակարգն ունի՝ կանգնեցրու ճշգրիտ սեփականատիրոջը, արխիվացրու կամ ջնջիր տեղական պրոֆիլը ըստ քաղաքականության, և չեղարկիր ինքնությունը դարպասի մոտ։ Տեղական բանալու ֆայլը ջնջելը չի չեղարկում արդեն մեքենայից դուրս եկած պատճենը։

Պահիր վերականգնման ուղի, որը կախված չէ թունելից, օրինակ՝ կոնսոլի հասանելիություն կամ երկրորդ կառավարման ուղի։ Տրամադրման փոփոխությունը, որ քեզ կողպում է մեքենայից դուրս, ձախողված փոփոխություն է, նույնիսկ երբ յուրաքանչյուր փուլ հաջողություն է հաղորդել։

Պահելարժեք սկրիպտը գործարք է սեփականության և ապացույցների շուրջ։ Արտոնյալ պատճենման հրամանների կարճ ցանկը նույն բանը չէ։

Առնչվող հոդվածներ