U verbindt de VPN, opent het notebook en verwacht dat de zware cel op de server draait. In de praktijk transporteert de tunnel alleen pakketten. Hij installeert geen evaluator, verleent geen licentie en kiest niet welke machine de code uitvoert. Dat zijn drie afzonderlijke dingen, en een werkstroom met een externe kernel heeft alle drie nodig voordat de eerste berekening betrouwbaar is.

De mythe: een VPN-verbinding is de configuratie

De VPN levert een netwerkpad tussen de laptop en de server. Dat is nuttig en vaak nodig, omdat het startkanaal en de kernelverbinding de externe host moeten bereiken. Hij zegt niets over of er een Wolfram-kernel op die host bestaat, of de licentie een tweede gelijktijdig proces toestaat, of de frontend is geconfigureerd om hem te gebruiken.

Een beheerde laptop kan alleen de frontend bevatten, waarbij het recht aan de server is gekoppeld. Het omgekeerde gebeurt ook: een desktoplicentie op de laptop geeft geen recht op een kernel op gedeelde infrastructuur. Geen van beide gevallen wordt opgelost door de tunnel opnieuw te verbinden.

Test de aanname vroeg. Evalueer $MachineName in een nieuw notebook en vergelijk het antwoord met de host die u verwacht. Als het de naam van de laptop teruggeeft, draaide de cel lokaal, hoe gezond de VPN er ook uitziet.

Scheid de frontend van de evaluator

De frontend is het venster: hij bewerkt cellen, toont uitvoer en slaat het notebookbestand op. De kernel is het proces dat expressies evalueert en definities in het geheugen houdt. De frontend sluiten verplaatst de kernel niet, en het notebook opslaan slaat de toestand van de kernel niet op.

Zodra een externe kernel is gekoppeld, zijn de bestandslocatie van het notebook en de werkmap van de kernel twee verschillende dingen. Directory[] rapporteert de map van de evaluator, en dat is het pad dat ertoe doet voor Import, Export en relatieve bestandsnamen. Een dataset naast het notebook op de laptop is niet zichtbaar voor een kernel die op een andere machine draait.

Bepaal hoe de gegevens de server bereiken voordat u de analyse schrijft: een gedeelde gekoppelde locatie, een goedgekeurde overdrachtsstap of een database die de server rechtstreeks kan bereiken. Die keuze beïnvloedt de reproduceerbaarheid, omdat een notebook dat van een laptop-pad afhangt de volgende keer mislukt wanneer iemand anders het uitvoert.

Start de kernel via een goedgekeurd kanaal

De gids voor externe kernels van Wolfram beschrijft het toevoegen van een kernelvermelding, het selecteren van de externe machine en het starten via SSH. Het pad naar het uitvoerbare bestand en de argumenten in het voorbeeld horen bij de werkstroom van dat product; pas ze aan de host en versie aan die de beheerder noemt in plaats van ze ongewijzigd te plakken.

De identiteit van de host is deel van de configuratie. Verifieer de SSH-hostsleutel via het proces van de organisatie, gebruik de uitgegeven authenticatiemethode en houd persoonlijke sleutels en wachtwoorden buiten notebookbestanden die worden gedeeld of in een repository worden vastgelegd. Een notebook met een startopdracht en een wachtwoord is een lek van inloggegevens, geen gemak.

Open geen WSTP-listener naar het internet als kortere weg. Het ondersteunde patroon is de SSH-start, die het kernelkanaal binnen een geauthenticeerde verbinding houdt. Als het netwerkteam een ander transport heeft goedgekeurd, gebruik dat dan, maar behandel een openstaande evaluatorpoort als een ontwerpwijziging, niet als een foutopsporingsstap.

Controleer eerst het recht, de gegevens en de uitvoergrootte

Bevestig met de licentienemer dat de server een kernel voor deze gebruiker mag uitvoeren en dat gelijktijdige sessies zijn toegestaan. Externe berekeningen worden vaak apart van de desktopfrontend gelicentieerd, en een mislukte start door het recht lijkt op een mislukte SSH-opdracht tot iemand het bericht van de server leest.

Schat daarna de grootte van het resultaat. Een kernel die een expressie van meerdere gigabytes teruggeeft, stuurt die via het start- en kernelkanaal naar de frontend, wat het geheugen van de laptop kan blokkeren of uitputten. Houd zware aggregatie op de server en geef samenvattingen terug, of schrijf grote resultaten naar een pad op de server en breng ze bewust over.

Noteer het pad van het uitvoerbare bestand, de startargumenten en de werkmap in de configuratienotities van het notebook. De volgende gebruiker reproduceert dan de opzet in plaats van opnieuw te ontdekken welk van vijf mogelijke paden de server gebruikt.

Diagnosticeer de fasen in volgorde

Vijf fasen moeten slagen, en elk heeft een eigen test. Begin bij de laptop en stop bij de eerste fout in plaats van meerdere instellingen tegelijk te wijzigen:

nc -vz research.example.edu 22
ssh -v [email protected] 'hostname; command -v wolframscript'
ssh [email protected] 'wolframscript -code "$MachineName"'

Een mislukte TCP-controle wijst op routing, DNS of de toegestane bestemmingen van de VPN. Een geslaagde TCP-controle met een mislukte SSH-aanmelding wijst op authenticatie of hostsleutelbeleid. Een aanmelding die werkt maar geen uitvoerbaar bestand vindt, wijst op de kernelinstallatie of het pad dat de frontend kreeg. Een kernel die start maar nooit verbindt, wijst op de startargumenten of de lokale firewall.

Bewaar de eerste betekenisvolle fout en stuur de serverzijde-fasen naar de beheerder die eigenaar is van die machine. Het herhaald opnieuw aanmaken van de kernelvermelding verbergt welke fase werkelijk mislukte, en het gooit het bewijs weg dat de beheerder nodig heeft.

Uiteindelijk wilt u een venster dat u herkent, een evaluator die u kunt benoemen en een afgesproken route voor code en bestanden. De VPN is één onderdeel van dat pad, en hoe sneller de werkstroom dat weerspiegelt, hoe minder tijd opgaat aan het opnieuw verbinden van een tunnel die nooit het probleem was.

Gerelateerde artikelen