Frage

Im Moment arbeite ich an einem serverseitigen Produkt, das ein wenig komplex ist auf einen neuen Server bereitstellen, die für die Erprobung in einer VM es zu einem idealen Kandidaten macht. Wir sind bereits Hudson als unser CI-System, und ich würde wirklich eine virtuelle Maschine Bild mit der neuesten und besten Software als Build Artefakt wie in der Lage sein zu implementieren.

Also, wie geht ein über die genau tun? Welche VM-Software ist für diesen Zweck empfohlen? Wie viel Scripting muss getan werden, um dies zu erreichen? Gibt es Probleme insbesondere dann, wenn Windows 2003 Server als Betriebssystem hier mit?

War es hilfreich?

Lösung

Leider jemand eine akzeptierte Antwort hier leugnen, aber auf der Grundlage weiterer Forschung (dank Ihrer Antworten!), Ich habe eine bessere Lösung gefunden und wollten zusammenfassen, was ich gefunden habe.

Zuerst beide VirtualBox und VMWare Server sind großartige Produkte, und da beide frei sind, jeweils im Wert zu bewerten. Wir haben beschlossen, mit VMWare Server zu gehen, da es sich um eine etablierte Produkt ist und wir können Unterstützung erhalten dafür sollten wir brauchen. Dies ist besonders wichtig, da wir auch die Software für Kunden als VM anstelle einer speziellen Server-Installation in Betracht ziehen auszuschütten, vorausgesetzt, dass der Kopf aus der VMWare Player ist nicht zu hoch. Außerdem gibt es eine VMWare Scripting-Schnittstelle VIX genannt, die man direkt verwenden installieren von Dateien auf die VM, ohne SSH oder SFTP zu installieren, was ein großer Vorteil ist.

So ist unsere Lösung ist im Grunde wie folgt ... zuerst erstellen wir ein „Vanille“ VM-Image mit OS, sonst nichts, und es in das Repository überprüfen. Dann schreiben wir ein Skript, das als unser Installateur wirkt, setzen die von Hudson erstellt Artefakte auf dem VM. Dieses Skript sollte Schnittstellen-Dateien direkt zu kopieren, über SFTP, und durch VIX. Dies wird es uns ermöglichen, direkt auf dem Zielcomputer Verteilen von Software fortzusetzen, oder durch eine VM unserer Wahl. Das resultierende Bild wird dann als ein Artefakt des CI-Server komprimiert und verteilt werden.

Andere Tipps

Unabhängig von der VM-Software (ich kann VirtualBox empfehlen, auch) Ich glaube, Sie bei folgendem Szenario suchen:

  1. Build erfolgt
  2. CI startet virtuelle Maschine (oder es läuft immer)
  3. CI verwendet scp / sftp zum Hochladen in VM über das Netzwerk bauen
  4. CI verwendet den ssh (wenn verfügbar auf Ziel-OS in VM ausgeführt wird) oder andere Remote-Befehlsausführungseinrichtung Installation in der VM-Umgebung auslösen

VMWare Server ist kostenlos und ein sehr stabiles Produkt. Es gibt Ihnen auch die Möglichkeit, Snapshots der VM Scheibe zu erstellen und zur vorherige Version der virtuellen Maschine Rollback, wenn nötig. Es wird gut laufen auf Win 2003.

Im Hinblick auf die Bereitstellung neuer VM Scheiben für Ihre baut, können Sie einfach kopieren und den Ordner, der die VMWare-Dateien enthält, ändern Sie die SID und IP der neuen VM, und Sie haben eine neue Maschine. Dauert 15 Minuten, abhängig von der Größe Ihrer VM in Scheiben schneiden. Kein Scripting erforderlich.

Wenn Sie VirtualBox verwenden, werden Sie es ohne Kopf in Laufen, aussehen soll, da es auf Ihrem Server sein werden. Normalerweise VirtualBox läuft als Desktop-Anwendung, aber es ist möglich VMs von der Kommandozeile zu starten und die virtuelle Maschine über RDP zugreifen zu können.

VBoxManage startvm "Windows 2003 Server" -type vrdp

Wir sind mit Jenkins + Vagrant + Chef für dieses Szenario.

So können Sie den folgenden Prozess tun:

  • Die Versionsverwaltung Ihrer VM-Umgebung vagrant Provisioning-Skripte (Chef oder Puppet)

  • mit
  • Erstellen Sie Ihr System mit Jenkins / Hudson

  • Führen Sie Ihre Vagrant Skript die letzte stabile Version von CI Ausgang

  • holen
  • Speichern Sie die VM-Status in Zukunft wieder zu verwenden.

Referenz:

vagrantup.com

Ich würde empfehlen, VirtualBox . Es ist kostenlos und verfügt über eine gut definierte Programmierschnittstelle, obwohl ich persönlich nicht in automatisierten Build-Situationen verwendet werden.

Die Wahl VMWare ist derzeit keine schlechte Wahl.

Allerdings Genau wie VMWare Unterstützung für VMWare-Server gibt, gibt SUN Unterstützung für VirtualBox.

Sie können diese Aufgabe auch mit VMWare Studio, erreichen, die auch frei ist. Der grundlegende Arbeitsablauf ist dies: 1. Erstellen Sie eine XML-Datei, die der virtuellen Maschine beschreibt 2. Verwenden Studio, um die Schale zu erstellen. 3. Verwenden Sie VMWare Server die virtuelle Maschine für die Bereitstellung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top