Testumgebung Virtualisierung mit Vagrant ?

#1

Hi,

kennt sich jemand mit Vagrant and friends aus ?

Ich habe folgendes Szenario:

Software soll auf verschiedenen OS getestet werden in verschiedenen Versionen.

Die Idee ist dies zu virtualisieren und fuer die Entwickler/Tester es simple zu halten eine VM zu starten und die Tests durchzufuehren.

Die Umsetzung waere dann auf einem/mehreren Maschinen Vagrant (and friends) mit den entsprechenden Konfigurationen laufen zu lassen, so dass der Tester nur die entsprechende Umgebung starten muss (das wuerde heissen auf einer Maschinen sollen mehrere VMs gleichzeitig mit versch. Konfigurationen laufen) - bzw Vagrant bei denjenigen lokal installieren waere auch moeglich.

Klingt das vernuenftig ? Sinnvoll mit Vagrant ? Gibts was anderes, besseres ?

Cheers und danke

#2

Ich kenne Vagrant als lokales Entwicklungstool, aber so im allgemeinen bist du IMHO schon auf dem richtigen Weg.
Vagrant kuemmert sich “nur” um die VM, brauchst noch ein Provisioning Tools, auch CM Tool genannt, zB, Puppet, Chef oder (mein Favourit) Ansible mit dem die VM konfiguriert wird (packate installieren, Netzwerk konfigurieren etc. pp.)

Da sei noch packer (https://packer.io) genannt, ein Buildtool fuer VMs, ist soz. was Maven/Gradle fuer Java Anwendungen ist, ist Packer fuer (virtuelle) Maschinen, ein Base Image wird angebeben, dann kann man entscheiden wie man provisionieren will (Bash, Puppet, Chef oder sogar Ansible), zum Schluss kann man dann entscheiden was rauskommen soll als Image, zB VMware, Vagrant, Docker, AWS, etc. pp.
Eignet sich zB. wenn man auf dem CI Server einen Job hat der bei Änderungen am Repo der Provisionierung (zB. Puppet) diese Änderungen anwendet und ein neues IMage ausspuckt, weclhes man wiederrum deployen könnte und Tests dagegen fahren kann.

#3

danke schonmal.

Ansible ist bisher auch mein Favorit, aber ich bin noch nicht sicher ob ich es wirklich nutzen kann, da es nur unter unix laeuft - und es sein kann, dass eben auch auf windows/mac maschinen das System laufen soll.

Packer habe ich bisher noch nicht angeschaut - klingt aber gut :slight_smile:

#4

Ansible geht auf dem Mac, aber unter Windows wird eher dunkel, nicht nur fuer Ansible, auch fuer Puppet IME

#5

Nachdem der Provisioner in der Vagrant VM läuft, ist das Hostsystem egal.

Vagrant mit passenden Provisioner ist ne gute Kombi. Ich erstell mir meine Ausgangsbasis gerne mit puphpet.com und passe diese dann an meine Bedürfnisse an. Auch wenn man kein PHP braucht, kann man puphpet.com als Ausgangsbasis ruhig verwenden.

#6

also laut der offiziellen Ansible doku heisst es

Currently Ansible can be run from any machine with Python 2.6 or 2.7 installed (Windows isn’t supported for the control machine).

#7

Ansible laueft von ausserhalb der Maschine die provisioniert/konfiguriert wird (alles per SSH), es ist ein de-zentrales system, es gibt keinen Puppet Master oder aehnliches.
Klar kann man das konfigirieren einer VM von einer anderen VM machen lassen, aber dann hilft Vagrant wenig, denn VMs lassen sich nicht in VMs starten.