Zunächst einmal bin ich neu in CI und GitLab, also kann ich etwas sagen, das keinen Sinn ergibt. Wenn es passiert, entschuldige ich mich und bitte um weitere Informationen.Verwenden einer externen Datenbank beim Ausführen einer Pipeline in GitLab
Ich habe ein Projekt (Laravel), das auf GitLab gehostet wird und ich verwende ihre CI, um die Tests durchzuführen. Momentan verwenden meine Tests keine Datenbank und alles funktioniert gut.
Ich bin jetzt in der Situation, wo ich einige Tests mit Daten durchführen muss. Das Problem, mit dem ich konfrontiert bin, ist, dass ich drei Datenbanken habe: Eine ist die, die von meiner Anwendung verwaltet wird, und zwei sind ältere Datenbanken.
Die von der Anwendung verwaltet wird jedes Mal neu erstellt, wenn die Pipeline ausgeführt wird, es ist verfügbar (für die Tests), und ich verwende Fabriken für die Daten. Also, keine Probleme hier.
Die anderen beiden sind jedoch Legacy, wie ich bereits sagte, und ich habe keine Kontrolle über sie, außer in der Lage zu sein, die Daten zu lesen.
Mein Test, einige davon, benötigen Daten aus diesen Datenbanken, aber ich weiß nicht, wie ich die gitlab-ci YAML-Datei schreiben soll, um die Datenbanken auf einem anderen Server (dem UAT-Server) zu verwenden.
Ich hoffe, dass jemand helfen kann.
Aber was genau ist das Problem? Sie zeigen Ihre Tests nur auf die Datenbank und sie verwendet sie. Geht es also eher darum, eine sichere Verbindung einzurichten?Vielleicht, wie Sie eine Verbindung zu einer Datenbank herstellen, die lokal in Ihrem lokalen Netzwerk ausgeführt wird? Wie werden die Daten aus älteren Datenbanken ausgegeben und in CI neu erstellt? –
Um auf die Datenbanken zeigen zu können, müssen Benutzername und Passwort in der YAML-Datei enthalten sein, was mir aus Sicherheitsgründen nicht gefällt (sie wären klar). Ich würde es erwägen, wenn ich den Zugang irgendwie einschränken könnte (ich mache es bereits in der IP-Adresse für meine Website), aber ich kann mir keinen Weg vorstellen, um es für CI zu erreichen. Die Datenbanken jedes Mal neu zu erstellen scheint teuer zu sein und ich müsste den Speicherauszug irgendwo speichern, was ich aus Sicherheitsgründen nicht mag. – giuliot
Die erste kann mit https://docs.gitlab.com/ee/ci/variables/#secret-variables gelöst werden, vielleicht ein VPN, um eine sichere Verbindung aufzubauen. Oder richten Sie einfach einen dedizierten Runner im selben LAN wie die älteren Datenbanken ein. Aber es scheint, dass Ihr Problem eher Ihre Bedenken bezüglich der Sicherheit als die CI-Konfiguration sind. –