Σενάρια που χρειάζονται το VPN ενεργό πριν από ένα αντίγραφο ασφαλείας συχνά εκκινούν το openvpn απευθείας. Έτσι εγκαταλείπονται το προφίλ, το DNS και η διαχείριση διαδρομών που το Tunnelblick ήδη διαχειρίζεται. Η υποστηριζόμενη διαδρομή είναι η δική του διεπαφή AppleScript του Tunnelblick, που δέχεται αιτήματα connect, state και disconnect για μια ονομαστική διαμόρφωση. Χρησιμοποιήστε την και αφήστε την εφαρμογή υπεύθυνη.

Μιλήστε με την εφαρμογή, όχι με το openvpn

Το Tunnelblick κατέχει το προφίλ OpenVPN, την επιλογή μηχανής, τα σενάρια και την ενσωμάτωση DNS και διαδρομών. Ένα ξεχωριστό δυαδικό openvpn είναι άλλη διάταξη εκκίνησης, όχι συντόμευση στην ίδια σύνδεση.

Η κλήση της διεπαφής σεναρίων της εφαρμογής διατηρεί αυτή την κυριότητα ανέπαφη και κάνει κάθε αίτημα ελέγξιμο.

Τα παραδείγματα εδώ υποθέτουν ότι το Tunnelblick βρίσκεται στο Applications, ότι μια λειτουργική διαμόρφωση ονομάζεται HQ και ότι οι εντολές εκτελούνται στη συνεδρία του συνδεδεμένου χρήστη Mac. Αλλάξτε το όνομα στη ακριβή διαμόρφωση που έχετε.

Ξεκινήστε ακριβώς ένα ονομαστικό προφίλ

Ένα αίτημα connect ονομάζει τη διαμόρφωση. Δεν είναι αίτημα σύνδεσης με ό,τι επιλέχθηκε τελευταίο.

Εκτελέστε το στη συνεδρία χρήστη που κατέχει τη διαμόρφωση:

osascript -e 'tell application "/Applications/Tunnelblick.app" to connect "HQ"'

Περάστε τις συνήθεις προτροπές σύνδεσης. Το macOS μπορεί να ρωτήσει αν επιτρέπεται στην εφαρμογή που καλεί να ελέγχει το Tunnelblick· ελέγξτε ποια εφαρμογή και ποιος στόχος πριν εγκρίνετε. Αυτοματισμός που κάνει κλικ παρακάμπτοντας αυτόν τον διάλογο ακυρώνει τον σκοπό του.

Ένα αίτημα connect επιστρέφει πριν σηκωθεί η σήραγγα

Ο οδηγός σεναρίων του Tunnelblick είναι σαφής: το connect επιστρέφει πριν ολοκληρωθεί η σύνδεση. Κατάσταση εξόδου μηδέν σημαίνει ότι το αίτημα έγινε δεκτό, όχι ότι κινείται κίνηση.

Διαβάστε την κατάσταση ξεχωριστά:

osascript -e 'tell application "/Applications/Tunnelblick.app" to get state of first configuration where name = "HQ"'

Το CONNECTED είναι αποτέλεσμα κατάστασης σύνδεσης. Δεν αποδεικνύει ακόμη ότι ο ιδιωτικός πόρος που χρειάζεται η εργασία σας είναι προσβάσιμος, οπότε ελέγξτε το ξεχωριστά πριν ξεκινήσετε εξαρτημένη εργασία.

Άλλα στοιχεία ελέγχου στη διεπαφή σεναρίων καλύπτουν ευρύτερες ενέργειες και δεν χρειάζονται όταν αλλάζει μόνο ένα προφίλ.

Περιμένετε με προθεσμία και μετά αποτύχετε

Η αέναη δειγματοληψία είναι ο τρόπος με τον οποίο ένα σενάριο κρέμεται όλη νύχτα και μπλοκάρει την επόμενη εκτέλεση. Δώστε στην αναμονή προθεσμία, σύντομο διάστημα και σαφή έκβαση αποτυχίας. Θεωρήστε κάθε κατάσταση εκτός από CONNECTED ως μη έτοιμη, μαζί με τις μεταβατικές. Καταγράψτε την τελευταία κατάσταση που είδατε ώστε η αποτυχία να εξηγείται μόνη της.

Ένας φραγμένος βρόχος μοιάζει έτσι:

for i in $(seq 1 30); do
  state=$(osascript -e 'tell application "/Applications/Tunnelblick.app" to get state of first configuration where name = "HQ"')
  if [ "$state" = "CONNECTED" ]; then exit 0; fi
  sleep 1
done
echo "tunnel did not reach CONNECTED" >&2
exit 1

Τριάντα δευτερόλεπτα είναι παράδειγμα, όχι καθολικό όριο. Διαλέξτε προθεσμία από τη διαδρομή ελέγχου ταυτότητας που χρησιμοποιεί πραγματικά το προφίλ και κρατήστε την στο αρχείο της ροής εργασίας.

Ελέγξτε την κατάσταση και αποσυνδέστε με όνομα

Για να σταματήσετε το ίδιο προφίλ, καλέστε disconnect με το ίδιο όνομα. Αυτό κρατά το αίτημα στενό και αφήνει ήσυχες τις άλλες διαμορφώσεις.

osascript -e 'tell application "/Applications/Tunnelblick.app" to disconnect "HQ"'

Κρατήστε το όνομα του προφίλ και τον ελεγκτή μαζί στο αρχείο της ροής εργασίας, μαζί με τους αναμενόμενους ελέγχους ταυτότητας και ολοκλήρωσης. Αυτό το αρχείο κάνει την εντολή ελέγξιμη έξι μήνες αργότερα.

Η συμπεριφορά εκκίνησης με τον υπολογιστή είναι άλλη λειτουργία. Χρησιμοποιήστε την τεκμηριωμένη επιλογή εκκίνησης του Tunnelblick και τη ρύθμιση διαπιστευτηρίων που περιμένει. Μια εντολή που εκτελείται σε συνδεδεμένη συνεδρία επιφάνειας εργασίας και μια υπηρεσία που ξεκινά με το μηχάνημα δεν μοιράζονται περιβάλλον. Μην υποθέσετε ότι ένα σενάριο που δουλεύει όσο είστε συνδεδεμένοι θα τρέξει στην εκκίνηση. Δοκιμάστε τη διαδρομή εκκίνησης χωριστά, με την ίδια προθεσμία και καταγραφή.

Σχετικά άρθρα