Ich richte in meinem Unternehmen einen GitLab-Server ein und füge ihm jetzt GitLab CI hinzu.
Bevor Sie mit dieser Aufgabe beginnen, möchten Sie wissen, ob es Nachteile gibt, wenn meine Läufer auf demselben Server ausgeführt werden, der von GitLab und GitLab CI verwendet wird.
Ich habe gelesen, dass es Sicherheitsbedenken gibt, aber wir verwenden es nur intern, sodass ich nicht denke, dass dies ein Problem sein könnte.
Ein interner Entwickler möchte dem Unternehmen Schaden zufügen (weil er dies für unterbezahlt hält, weil sein Chef mit seiner Frau schläft; der Grund spielt keine Rolle). Er führt einen Komponententest durch, bei dessen Ausführung nach GitLab-Repository und gesucht wird, anstatt die Anwendung zu testen löscht es. Überraschenderweise geht beim nächsten Commit der gesamte Quellcode des Projekts verloren (aber Sie führen Sicherungen durch und haben sie getestet, oder?)
Oder derselbe Entwickler stellt fest, dass Sicherungen des Repositorys auf demselben Computer konfiguriert sind. Er ändert diese Konfiguration durch einen Komponententest, sodass die Sicherung jetzt ein anderes Repository enthält, und wartet einen Monat - die Zeit, in der die Sicherungen aufbewahrt werden. Nachdem alle Backups beschädigt sind, kann er seinen Komponententest durchführen, bei dem der Quellcode vom Server gelöscht wird.
Oder ein Praktikant möchte den Quellcode an die Konkurrenz verkaufen. Sie haben den Zugriff sorgfältig konfiguriert und ihn auf das beschränkt, was er für seine Arbeit benötigt. Gleichzeitig hat er durch Unit-Tests uneingeschränkten Zugriff auf das Repository selbst und kann den vollständigen Dump durchführen.
Sofern Komponententests nicht in einem Kontext mit eingeschränkten Berechtigungen ausgeführt werden und nur auf die Verzeichnisse und Dateien zugreifen können, die für die Tests benötigt werden, ist das Mischen des CI-Servers mit dem Server, der Ihr Repository verwaltet, in der Tat gefährlich.
Ein weiteres Problem ist, dass der Versionskontrollserver voraussichtlich schnell ist. Auf demselben Computer installierte CI-Server können die Festschreibungen verlangsamen.
Wir sind 3 Entwickler ... wenn jemand von uns der Firma Schaden zufügen möchte, kann er das auf tausendfache Weise tun = (... Das einzige Problem wären also die langsamen Leistungen, aber wenn ich eine schöne Maschine benutze, sollte ich keine großen haben Probleme, nicht
wahr
ps: was ist mit chroot? Kann nicht verwendet werden, um den Prozess sicher zu machen?
Fez Vrasta
4
@FezVrasta: Wenn in Ihrem Fall weder die Sicherheit noch die Leistung von Bedeutung ist, ist die zukünftige Skalierbarkeit der einzige Vorteil, der darin besteht, dass separate Computer vorhanden sind. Um ehrlich zu sein, ähnelt es einer vorzeitigen Optimierung, Änderungen vorzunehmen, bevor Skalierbarkeitsprobleme auftreten.
Arseni Mourzenko
@FezVrasta: "Was ist mit Chroot? Kann nicht verwendet werden, um den Prozess sicher zu machen?" - Ich habe nicht genug Kenntnisse in Unix-Sicherheit, um diese Frage zu beantworten.
Arseni Mourzenko
0
Angesichts der Tatsache, dass es keinen zentralen "allwissenden" Server für Git gibt, ist dies nicht schlecht, wie es bei einigen anderen Quellcode-Kontrollsystemen der Fall wäre.
Vorausgesetzt, es gibt einen automatischen Syk des Git-Servers außerhalb des Standorts zu einem anderen Git-Server (der getestet wird). Ich würde mich nicht um dieses Setup in einer kleinen Firma kümmern.
Idealerweise möchte ich, dass die Entwickler ihre Änderungen auf den Offset-Server git-Server und dann auf den CI-Server übertragen, um die Gebühren vom Offset-Server abzurufen. Auf diese Weise wird der Offsite-Server nach jedem Einchecken getestet.
Wenn die Entwickler dann immer vom Vor-Ort-Server gezogen haben, um Zeit zu sparen, ist das kein Problem.
Wenn ich 2 Server benötige, warum sollte ich dann nicht einfach Läufer auf dem 2. Server ausführen?
Fez Vrasta
@FezVrasta, der " Offsite- Server" kann jeder sein, der Ihnen Git-Hosting verkauft. Es muss kein Server sein, den Sie besitzen. Auch wenn es über das Internet geht, wird es langsam sein, dies zu tun.
Angesichts der Tatsache, dass es keinen zentralen "allwissenden" Server für Git gibt, ist dies nicht schlecht, wie es bei einigen anderen Quellcode-Kontrollsystemen der Fall wäre.
Vorausgesetzt, es gibt einen automatischen Syk des Git-Servers außerhalb des Standorts zu einem anderen Git-Server (der getestet wird). Ich würde mich nicht um dieses Setup in einer kleinen Firma kümmern.
Idealerweise möchte ich, dass die Entwickler ihre Änderungen auf den Offset-Server git-Server und dann auf den CI-Server übertragen, um die Gebühren vom Offset-Server abzurufen. Auf diese Weise wird der Offsite-Server nach jedem Einchecken getestet.
Wenn die Entwickler dann immer vom Vor-Ort-Server gezogen haben, um Zeit zu sparen, ist das kein Problem.
quelle