Ír egy szkriptet, amely a kapcsolat nevével futtatja a scutil --nc start parancsot, működik az Ön Macjén, és minden frissen telepített irodai gépen elbukik. A szkript nem hibás. Olyasmit kérnek tőle, amire soha nem volt képes: egy meglévő kapcsolat elindítása nem ugyanaz a művelet, mint egy új létrehozása.

Az előkészítés és a munkamenet-vezérlés két munka két gazdával, és az ellenkezőjét feltételező munkafolyamat minden tesztet teljesít azon a gépen, ahol írták.

Kivel beszél valójában az indító parancs

A munkamenet-vezérlő parancs olyan konfigurációt szólít meg, amely már létezik és már jóvá van hagyva. Arra kéri a rendszert, hogy hozza fel azt a megnevezett kapcsolatot, a korábban tárolt kiszolgálóbeállításokkal, identitáshivatkozásokkal és szabályzattal. Ha ezeket soha nem telepítették, nincs mit elindítani.

Ezért jelenik meg a hiba új hardveren, és nem az adminisztrátor laptopján. A laptopot hónapokkal ezelőtt készítette elő valaki, aki azóta elfelejtette, hogy ezt tette. Gondoljon az indító parancsra úgy, mint egy ajtócsengőre, amelyet valaki az előző negyedévben bekábelezett. Megnyomni nem ugyanaz, mint lefektetni a kábelezést.

Egy VPN-konfiguráció három gazdája

A szervezet által kezelt profil eszközkezelésből származik. A profil hordozza a kiszolgálócímeket, a hitelesítés rendjét és a szervezet által megkövetelt szabályzatot, a VPN-adminisztrátor pedig az a személy, aki ezeket szolgáltatja. A szkriptnek nem szabad ezeket a beállításokat egy listában talált megjelenített névből újraépítenie.

A natív személyes VPN-konfiguráció az Apple Network Extension API-ján keresztül jön létre, amely a beépített IPsec és IKEv2 protokollokat fedi le. Ez egy alkalmazásfelület mentési lépéssel és felhasználói jóváhagyással, nem olyan shell-parancs, amely csendben bármilyen alagúttípust létrehoz, amelyet egy szállító kínál.

A harmadik féltől származó kliens harmadik eset, saját importformátummal, saját kezelőeszközzel és gyakran saját jogosult segéddel. A munkamenete az adott szállító folyamatáé. Egy hasonló nevű rendszerszolgáltatás megtalálása nem bizonyíték arra, hogy egy rendszerparancs irányítja az alagutat, és ezt feltételezve olyan szkriptek születnek, amelyek működni látszanak, amíg a szállító frissíti a klienst.

A natív előkészítésnek van mentése és jóváhagyása

Az Apple modellje: betöltés, módosítás, mentés. Az alkalmazás az indítás utáni első mentése előtt betölti a meglévő beállításokat, módosítja a konfigurációt, majd elmenti. A mentés hibát jelez, amikor nem tud tartósan írni, és ennek az eredménynek a figyelmen kívül hagyása három lépéssel később az előkészítési hibát kapcsolathibává változtatja.

Az első mentéshez a felhasználónak jóvá kell hagynia az alkalmazást. Ez szándékos biztonsági határ, és azt jelenti, hogy az első futás egy új Macen interaktív, még akkor is, ha minden későbbi csatlakozás és bontás automatizálható. Tervezze az első futást emberi feladatként, jelen lévő emberrel. A második futástól automatizáljon, és írja ezt le a runbookban, hogy senki ne ígérje a lehetetlent. Az a telepítési terv, amely teljesen felügyelet nélküli első futást ígér, olyasmit ígér, amit a platform nem kínál.

Az Apple azt is javasolja, hogy az API-ra támaszkodás előtt konfigurációs profillal ellenőrizze a kiszolgáló kompatibilitását. Ha ezt az ellenőrzést előbb végzi el, elválik egymástól, hogy «a kiszolgáló nem fogadja el ezt a klienst» és hogy «a kliens soha nem mentette a beállításokat», amelyek különböző jegyek különböző csapatoknak.

Mit feltételezhet egy ismételhető indító parancs

Az előkészítés után a szkript biztonságosan célozhatja a meglévő kapcsolatot a tulajdonos felületén keresztül. Adja át neki a kapcsolat stabil identitását és a kívánt műveletet, és semmi mást. Nem szabad kitalált beállítási útvonalat olvasnia, és nem szabad feltételeznie, hogy a menüben látható név az egész rendszerben egyedi.

Natív kapcsolatoknál egy megnevezett munkamenet-kérés, például a scutil --nc start, vezérlő művelet. Nem telepít kiszolgálóbeállításokat, nem importál hitelesítő adatokat, és nem végzi el az első mentés engedélyezését. Kezelje egy lánc utolsó lépéseként, soha nem a teljes láncként.

Tartsa a titkokat a parancssori argumentumokon és a szokásos diagnosztikai kimeneten kívül. Bármilyen identitásmechanizmust választott is a telepítés, az indító parancsnak arra kell támaszkodnia, és a shell-előzményekbe illesztett jelszó minden felülvizsgálatban megállapítás.

Két átvételi ellenőrzés

Az első ellenőrzés az előkészítés: vegyen egy frissen telepített Macet, és bizonyítsa, hogy a konfiguráció jelen van, a megfelelő kezelő tulajdonában van, és teljesen jóvá van hagyva. Ezt a kapcsolódás tesztelése előtt tegye meg, mert egy nem előkészített gépen végzett kapcsolatteszt semmit nem bizonyít a szkriptről.

A második ellenőrzés a munkamenet: csatlakozzon, érje el az engedélyezett erőforrást, és tisztán bontsa a kapcsolatot. Most minden hibának van gazdája, és ez a két munka szétválasztásának gyakorlati haszna. A hiányzó profil szállítási probléma, a mentési hiba jóváhagyási probléma, az elutasított bejelentkezés hitelesítési probléma, a sikeres indítás utáni időtúllépés pedig a munkamenet rétege. Egyik sem «a szkript hibás».

Kapcsolódó cikkek