Bevor ein Juju-Charm zu Ihrem VPN wird: Identität, Vertrag, Ports
Fünf Schritte trennen das, was ein Charm tatsächlich ausliefert, von dem, was Sie annehmen: die Revision festnageln, die Konfiguration lesen und dann Exposition als Firewall-Aktion behandeln.
Jemand findet einen Charm, der angeblich ein VPN betreibt, setzt ihn ein, exponiert die Anwendung und wartet darauf, dass ein Client sich verbindet. Der Einsatz gelingt, der Port öffnet sich, und der Tunnel funktioniert trotzdem nicht, weil drei unabhängige Zusagen zu einer zusammengefasst wurden. Ein Charm ist eine Deployment-Implementierung mit einem bestimmten Vertrag. Betrachten Sie diese Zusagen getrennt, und die Lücken zeigen sich vor dem Rollout statt danach.
Schritt eins: das Artefakt festnageln, über das Sie lesen
Lesen Sie die Metadaten des Kandidaten selbst: Herausgeber, Quell-Repository, Kanal, Revision, Basis und Architektur. Stellen Sie dann fest, wer die VPN-Software im Workload wartet und wer ihre Sicherheitsupdates ausliefert, denn das sind oft zwei verschiedene Parteien. Ein ungewartetes Upstream in einem gut gewarteten Charm ist ein Supportproblem, das auf eine schlechte Woche wartet.
juju info CHARM_NAME meldet Kanäle, Basen und Architekturen in Juju 3.6, und die Dokumentation merkt an, dass eine Abfrage einer bestimmten Revision nicht mit diesen Filtern kombiniert werden kann. Fragen Sie die Revision einzeln ab, statt eine Kombination zu bauen, die der Befehl zurückweist. Lesen Sie auch Basis und Architektur, denn ein Kanal kann mehr als eine abdecken.
Notieren Sie die genaue Kombination, die Sie geprüft haben, neben dem Deployment. Ein Refresh, der den Kanal verschiebt, ist dann eine beabsichtigte Änderung mit Vorher und Nachher, keine Überraschung am Montag.
Schritt zwei: die Konfiguration als Vertrag lesen
Bestimmen Sie die Rolle, die der Charm spielt: Fernzugriff beenden, einem bestehenden VPN beitreten oder etwas ganz anderes. Finden Sie dann heraus, wie er die Registrierung von Clients, vertrauenswürdige Aussteller, den Wechsel von Zugangsdaten und den Widerruf dokumentiert. Diese vier entscheiden darüber, ob Sie das Ding betreiben können, und eine erzeugte Client-Datei ist eine sensible Ausgabe statt einer Datei für ein Ticket.
Folgen Sie den Schnittstellen und Aktionen, die der Charm tatsächlich anbietet. Gehen Sie nicht davon aus, dass es eine Registrierungsaktion gibt, nur weil ein anderer Charm für dieselbe Software eine hat.
Fragen Sie, was die Abgleichslogik mit manuellen Änderungen macht. Wenn der Charm eine Konfigurationsdatei beim nächsten Update überschreibt, hat eine manuelle Korrektur eine Haltbarkeit von genau einem Upgrade. Fragen Sie die Maintainer, wo dieses Verhalten dokumentiert ist, und behandeln Sie Schweigen als unbekannt.
Schritt drei: den Listener vom weitergeleiteten Pfad trennen
Der äußere Listener ist der Socket, der den Tunnel annimmt. Weiterleitung ist das, was mit dem Datenverkehr darin passiert, und ein Rückweg ist das, was Antworten zurückkommen lässt. Ein Charm kann das Erste liefern und die anderen beiden dem Infrastrukturteam überlassen.
Egress ist ein drittes Stück. Wenn Tunnel-Clients über diesen Host ins Internet gelangen sollen, muss es eine Adressierungs- oder Übersetzungsregelung geben, und sie entsteht nicht durch das Öffnen eines Ports. Weisen Sie diesem Stück einen Verantwortlichen zu, bevor der erste Client eintrifft.
Schritt vier: Exposition ist eine Firewall-Aktion
In Juju 3.6 passt das Exponieren einer Anwendung die Cloud-Firewallregeln an, und standardmäßig erlaubt es Datenverkehr aus jeder Quelle zu den Ports, die der Workload geöffnet hat. Die Endpoint- und CIDR-Selektoren des Befehls existieren genau dafür, dass dieser Standard eingeengt werden kann.
Exposition erzeugt keine VPN-Benutzer, prüft deren Zugangsdaten nicht und installiert keine Weiterleitungsrichtlinie. Sie beweist auch nicht, dass der Workload auf der Adresse und dem Transportprotokoll lauscht, die Sie erwarten, weshalb der Test nach der Exposition mehr zählt als die Erfolgsmeldung. Prüfen Sie den lauschenden Socket auf der Unit ebenso wie die Cloud-Regel.
Schritt fünf: mit vier Tests abnehmen
Nach einem genehmigten Deployment registrieren Sie einen neuen Client und bestätigen den vorgesehenen privaten Dienst. Dann widerrufen Sie diese Identität und bestätigen, dass der Zugriff tatsächlich endet, statt nur die nächste Anmeldung zu verweigern. Wiederholen Sie die Prüfung aus einem Netz, das Sie nicht kontrollieren, und dann aus dem Büro, denn diese beiden Wege beantworten unterschiedliche Fragen.
Schließen Sie mit einem Upgrade und einer erneuten Verbindung ab, denn dort wirken Abgleich, Umgang mit Zugangsdaten und Dienstneustarts zusammen. Wenn die Dokumentation nicht erklären kann, wer eine dieser Operationen besitzt, schreiben Sie das als Adoptionslücke auf, statt sie mit einem ungewarteten Rezept unter demselben Charm-Namen zu füllen. Eine aufgeschriebene Lücke ist eine Entscheidung; eine stillschweigend gefüllte Lücke ist ein künftiger Ausfall. Geben Sie sie an die Person weiter, die die Dienstentscheidung besitzt, mit dem Datum, an dem Sie sie gefunden haben.