So verwenden Sie Virtualmin in Testumgebungen
In der Welt der Softwareentwicklung spielen Testumgebungen eine wesentliche Rolle bei der Validierung von Anwendungen vor der Bereitstellung in der Produktion. Virtualmin, ein leistungsstarkes Webmin-basiertes Serververwaltungstool, erleichtert die Erstellung und Verwaltung dieser Testumgebungen erheblich. In diesem Artikel erfahren Sie, wie Sie Testserver einrichten, Sandboxes verwalten, Tests automatisieren und Virtualmin in CI/CD-Tools integrieren.
Testserver konfigurieren
Was ist ein Testserver?
Ein Testserver ist eine Maschine, die speziell zum Testen konfiguriert ist, bevor Code auf einem Produktionsserver bereitgestellt wird. Diese Server emulieren die Produktionsumgebung und ermöglichen Entwicklern die Erkennung von Fehlern sowie die Gewährleistung der Anwendungsleistung und -sicherheit.
Virtualmin installieren
Bevor Sie einen Testserver einrichten, müssen Sie unbedingt Virtualmin installieren. Nachfolgend sind die grundlegenden Schritte für die Installation aufgeführt:
Voraussetzungen:
- Ein VPS oder dedizierter Server mit einem kompatiblen Betriebssystem (Debian, Ubuntu, CentOS usw.).
- Root- oder Sudo-Zugriff.
Laden Sie das Virtualmin-Installationsskript herunter:
wget http://software.virtualmin.com/gpl/scripts/install.sh
Führen Sie das Installationsskript aus:
sudo /bin/sh install.sh
Befolgen Sie die Anweisungen auf dem Bildschirm um die Installation abzuschließen.
Ersteinrichtung
Sobald Virtualmin installiert ist, greifen Sie mit Ihrem Browser auf die Weboberfläche zu (normalerweise aktiviert). https://Ihre_Domain:10000
). Folgen Sie dem Setup-Assistenten, um grundlegende Parameter wie Hostnamen, Nameserver (DNS) und E-Mail-Optionen festzulegen.
Erstellen eines virtuellen Servers zum Testen
Innerhalb der Virtualmin-Schnittstelle:
Erstellen Sie einen virtuellen Server:
- Navigieren Sie zu „Virtuellen Server erstellen“.
- Geben Sie die Domänendetails, die Beschreibung und die Benutzeranmeldeinformationen ein.
Sandbox einrichten:
- Nutzen Sie die erweiterten Optionen, um die Umgebung an die Anforderungen des Projekts anzupassen. Dies kann bestimmte PHP-Versionen, Datenbankkonfigurationen und benutzerdefinierte Berechtigungen umfassen.
Sandbox-Management
Vorteile isolierter Umgebungen
Durch die Erstellung von Sandboxes wird sichergestellt, dass Tests andere Projekte nicht beeinträchtigen. Dies ist besonders nützlich in großen Teams, in denen mehrere Entwickler an verschiedenen Teilen desselben Projekts arbeiten.
Konfigurieren von Sandboxes in Virtualmin
Einsatz von Containern:
- Für eine stärkere Isolation sollten Sie die Verwendung von Containern wie Docker in Betracht ziehen. Dadurch können Anwendungen und ihre Abhängigkeiten gekapselt werden, um sicherzustellen, dass Softwareversionen nicht in Konflikt geraten.
- Virtualmin kann in Docker integriert werden, um Container über die Weboberfläche zu verwalten.
Subserver:
- In Virtualmin können Sie Unterserver innerhalb eines virtuellen Hauptservers erstellen. Diese Subserver können unabhängige Konfigurationen haben, sodass verschiedene Versionen einer Anwendung parallel ausgeführt werden können.
Chroot und Jailkit:
- Mit Tools wie Chroot oder Jailkit ist es möglich, gekapselte Umgebungen zu erstellen, indem der Benutzerzugriff auf einen bestimmten Teil des Dateisystems beschränkt wird.
Testautomatisierung
Integration mit Automatisierungstools
Die Testautomatisierung ist entscheidend für die Sicherstellung der Konsistenz und Qualität der Software. Tools wie Selenium, Jenkins und GitLab CI können für einen effizienteren Workflow in Virtualmin integriert werden.
Jenkins-Installation und -Konfiguration:
- Jenkins ist ein Open-Source-Automatisierungstool, das kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) ermöglicht.
- Installieren Sie Jenkins auf Ihrem Testserver und konfigurieren Sie ihn so, dass Testjobs automatisch ausgeführt werden, wenn ein Commit an das Code-Repository erfolgt.
Integration mit Selen:
- Mit Selenium können Sie Webbrowsing-Tests automatisieren. Sie können Selenium auf dem Testserver installieren und Jenkins so konfigurieren, dass Selenium-Tests automatisch ausgeführt werden.
Ausführen automatisierter Tests
Jenkins-Jobkonfiguration:
- Erstellen Sie einen neuen Job in Jenkins.
- Richten Sie das Quellcode-Repository ein (z. B. Git).
- Definieren Sie Build- und Testschritte.
- Richten Sie E-Mail-Benachrichtigungen ein, um Updates zum Teststatus zu erhalten.
Verwendung benutzerdefinierter Testskripte:
- Schreiben Sie Testskripte speziell für Ihre Anwendung (z. B. Unit- und Integrationstests).
- Konfigurieren Sie Jenkins so, dass diese Skripte als Teil automatisierter Tests ausgeführt werden.
Integration mit CI/CD-Tools
Vorteile der CI/CD-Integration
Kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) ermöglichen es Entwicklungsteams, Änderungen an Software schneller und effizienter bereitzustellen. Durch die Integration mit CI/CD-Tools wird sichergestellt, dass jede Änderung an der Codebasis automatisch getestet und, wenn sie alle Tests besteht, automatisch bereitgestellt wird.
GitLab CI mit Virtualmin konfigurieren
GitLab Runner installieren:
- Ein GitLab Runner ist ein Agent, der die in der Datei definierten Aufgaben ausführt
.gitlab-ci.yml
. - Installieren Sie GitLab Runner auf dem Testserver offizielle Dokumentation.
- Ein GitLab Runner ist ein Agent, der die in der Datei definierten Aufgaben ausführt
Anmeldung des Läufers:
- Registrieren Sie den GitLab Runner bei Ihrer GitLab-Instanz mit dem Registrierungstoken, das in der GitLab-Schnittstelle verfügbar ist.
Konfigurieren der CI/CD-Pipeline:
- Erstellen Sie eine Datei
.gitlab-ci.yml
in Ihrem Code-Repository mit den notwendigen Schritten zum Ausführen von Tests und zum Bereitstellen der Anwendung auf dem Testserver. - Einfaches Beispiel einer Datei
.gitlab-ci.yml
:Phasen: - Erstellen - Testen - Bereitstellen
bauen:
Bühne: bauen
Skript:- echo „Die Anwendung wird erstellt …“
prüfen:
Bühne: Test
Skript:- echo „Tests werden ausgeführt…“
- ./run_tests.sh
einsetzen:
stage:deploy
Skript:- echo „Bereitstellung auf Virtualmin-Server…“
- ./deploy.sh
- Erstellen Sie eine Datei
Pipeline-Ausführung:
- Jedes Mal, wenn ein Push an das Repository durchgeführt wird, führt GitLab CI die in der Datei definierte Pipeline aus
.gitlab-ci.yml
.
- Jedes Mal, wenn ein Push an das Repository durchgeführt wird, führt GitLab CI die in der Datei definierte Pipeline aus
Abschluss
Virtualmin bietet einen robusten Satz an Tools für die Verwaltung von Testumgebungen, von der ersten Serverkonfiguration bis hin zur Testautomatisierung und Integration mit CI/CD-Tools. Durch die Implementierung der in diesem Artikel beschriebenen Vorgehensweisen können Entwicklungsteams sicherstellen, dass ihr Code gründlich getestet wird, bevor er in der Produktion bereitgestellt wird. Dadurch wird nicht nur die Softwarequalität verbessert, sondern auch die Effizienz der Entwicklungsteams gesteigert.
Virtualmin ist ohne Zweifel eine Komplettlösung für die Verwaltung von Testservern, die es Entwicklern und Systemadministratoren erleichtert, effiziente und zuverlässige Umgebungen zu erstellen.
Zusammenhängende Posts:
- Konfigurieren von Virtualmin für Entwickler: Entwicklungsumgebungen, Versionsverwaltung und Bereitstellungsautomatisierung
- Backup-Automatisierung in Entwicklungsumgebungen mit Virtualmin: Konfiguration, Überprüfung und Best Practices
- Bereitstellungsautomatisierung mit Virtualmin: Umgebungen konfigurieren, Skripte verwenden und Prozesse effektiv überwachen
- So verwenden Sie APIs in Virtualmin zur Automatisierung: Vollständiger Leitfaden und praktische Beispiele